TidySmith
Codice C# messo nell'ordine che vuole il tuo team: membri ordinati e raggruppati con un'anteprima e un solo Annulla, regioni secondo le tue regole, commenti mandati a capo alla tua lunghezza di riga — e puntini grigi nell'editor dove qualcosa si può riordinare.
Gratuito · Visual Studio 2022 e 2026 · 14 lingue dell'interfaccia · nessuna telemetria
Perché TidySmith

Sicuro per progettazione
Basato sull'albero della sintassi di Roslyn: i membri si spostano con i loro commenti, la documentazione e gli attributi; i blocchi #if e #region non vengono mai attraversati; le classi che non si possono ordinare in sicurezza restano intatte. Un'anteprima mostra prima il diff, e Applica si annulla con un solo Annulla.
L'ordine del tuo team
L'ordine dei gruppi, l'accesso, i membri statici, i nomi — impostali nella pagina delle opzioni o mettili in .editorconfig, così tutti ottengono lo stesso risultato. I preset per StyleCop e CodeMaid sono inclusi.
Si scopre senza manuale
Puntini grigi sotto una classe fuori ordine o un commento troppo lungo; Ctrl+. propone la correzione accanto alle azioni di Visual Studio. Quando conosci i comandi, disattiva i suggerimenti.
Gratuito, senza condizioni
Nessun abbonamento, nessuna versione «pro», nessuna raccolta di dati, nessun messaggio nella finestra Output o all’avvio. L’unica cosa che ti chiederemo — dopo che l’avrai usata per un po’ — è una valutazione sul Marketplace. Funziona su Visual Studio 2022 e 2026, x64 e ARM64.
Funzionalità
- Ordina i membri di una classe, di un file o dei file selezionati in Esplora soluzioni — con un'anteprima di ciò che si sposta.
- Suggerimenti nell'editor: puntini grigi dove qualcosa si può riordinare, la correzione nella lampadina (Ctrl+.).
- Regioni secondo le tue regole: per gruppo di membri, per accesso o entrambi, con i tuoi nomi di regione; oppure nessuna regione.
- Commenti che rientrano: commenti
//e///mandati a capo alla tua lunghezza di riga, righe corte unite. - Riordino al salvataggio: i passaggi che scegli vengono eseguiti quando un file C# viene salvato; disattivato per impostazione predefinita.
- Finestra Structure: i membri del file, dimensione e complessità dei metodi, trascinamento per riordinare.
- Piccoli strumenti: passa al file correlato, ordina e unisci righe, trova il file in Esplora soluzioni, comprimi o espandi solo le regioni.
Ogni comando si trova in Modifica › TidySmith e nel menu di scelta rapida dell'editor di codice (clic destro › TidySmith); Order Members anche nel menu di scelta rapida di file, cartelle e progetti in Esplora soluzioni.
Ordinare i membri
Order Members… ordina i membri di una classe per tipo (costanti, campi, costruttori, proprietà, metodi…), poi per accesso (prima public), statici prima di quelli di istanza e, se vuoi, per nome — nell'ordine impostato nella pagina delle opzioni o in .editorconfig.
- Prima un'anteprima: il diff di ciò che si sposta; Applica è una sola modifica, quindi un solo Annulla ripristina tutto. “Non chiedere più” disattiva l'anteprima.
- Dove: la classe in cui si trova il cursore o l'intero file (si sceglie nell'anteprima), oppure ogni file C# selezionato in Esplora soluzioni — file, cartelle, progetti.
- Cosa si sposta con un membro: i suoi commenti, la documentazione e gli attributi. Le righe vuote restano come erano; tra i gruppi va una riga vuota.
- Cosa non viene mai toccato: i membri dentro
#ifo#regionvengono ordinati solo all'interno del loro blocco; le classi con un membro sulla riga di una parentesi graffa, due membri su una riga o errori di sintassi restano come sono; i file generati (*.g.cs,*.Designer.cs) vengono ignorati.
Preset da cui partire: TidySmith (overload e implementazioni di interfacce tenuti insieme), StyleCop (SA1201, SA1202, SA1204 — rigorosamente per accesso) e CodeMaid (il predefinito di CodeMaid, per i team che ne arrivano).
Suggerimenti nell'editor
Dove TidySmith può aiutare, il nome riceve tre puntini grigi — come Visual Studio segna i propri suggerimenti. Il puntatore sopra i puntini dice di cosa si tratta; Ctrl+. propone la correzione, con un'anteprima della modifica.

| Cursore su | Ctrl+. propone |
|---|---|
| Il nome di una classe | Ordinare i membri della classe o del file, aggiungere regioni secondo le tue regole, rimuovere le regioni della classe, aprire nella finestra Structure |
| Un commento più lungo della lunghezza della riga | Mandare a capo il commento |
Una riga #region | Rimuovere questa regione (il codice resta) |
| Più righe selezionate | Ordinare le righe (solo un elenco piatto), unire le righe |
I puntini compaiono per una classe fuori ordine, un commento più lungo della lunghezza della riga e regioni che non seguono le tue regole — nient'altro. I puntini e le azioni della lampadina hanno interruttori separati; “Solo nei file che ho modificato” lascia tranquillo il codice vecchio.
Regioni secondo le tue regole
Add Regions to This File… inserisce le righe #region dove dicono le tue regole, dopo un'anteprima. Le regioni sono una decisione del team, quindi il predefinito è nessuna regione: il comando apre le impostazioni finché non scegli.

- Come suddividere: una regione per gruppo di membri (Fields, Methods…), per accesso (Public, Private…) o entrambi (Public methods).
- I tuoi nomi: ogni gruppo ha il suo nome di regione; i gruppi con lo stesso nome condividono una regione, un gruppo disattivato resta fuori dalle regioni. Le implementazioni di interfacce possono avere una regione con il nome dell'interfaccia (IDisposable).
- Niente rumore: meno membri del minimo (2 per impostazione predefinita) non ottengono una regione; una regione attorno a un solo costruttore non aiuta nessuno.
- Eseguilo di nuovo quando vuoi: le regioni all'interno delle classi vengono ricostruite, non annidate. I membri vengono ordinati prima, così ogni gruppo è in un unico blocco.
- A mano: Add Region Around Selection (il cursore attende il nome dopo
#region), Remove Region at Caret, Remove Regions in This File — vengono rimosse solo le righe#regione#endregion, il codice resta.
La regola StyleCop SA1124 vieta le regioni; per questo il predefinito è nessuna regione — e per questo il riordino al salvataggio le rimuove con quell'impostazione.
Riordino al salvataggio
Quando un file C# viene salvato, TidySmith può ordinarne i membri, inserire le regioni secondo le regole, mandare a capo i commenti e rimuovere spazi finali e righe vuote in eccesso — ogni passaggio ha il suo interruttore. Solo il file che viene salvato, mai i file generati; la barra di stato indica cosa è cambiato, e Ctrl+Z annulla la modifica. Tidy This File esegue gli stessi passaggi su richiesta.
Disattivato per impostazione predefinita. Attivalo quando Order Members dà il risultato che vuole il tuo team — altrimenti il primo salvataggio di un file vecchio lo riordina tutto.
Finestra Structure
Visualizza › Altre finestre › TidySmith Structure: i tipi e i membri del file C# attivo. Segue il cursore, un clic porta al membro, la ricerca filtra, e un membro trascinato su un altro si sposta lì — lo stesso spostamento sicuro di Order Members. I metodi mostrano la loro lunghezza e la complessità ciclomatica; oltre i limiti della pagina delle opzioni diventano arancioni.

Piccoli strumenti
I comandi che mancavano da CodeMaid, in Modifica › TidySmith e nel menu di scelta rapida dell'editor.
Switch File
Apre il file che appartiene a quello corrente — il markup e il suo codice, un file di risorse e il suo designer, il codice e i suoi test — senza cercarlo in Esplora soluzioni.
| Da | A (e ritorno) |
|---|---|
MainWindow.xaml | MainWindow.xaml.cs |
Order.razor | Order.razor.cs |
Index.cshtml | Index.cshtml.cs |
Strings.resx | Strings.Designer.cs |
MainForm.cs | MainForm.Designer.cs |
OrderService.cs | OrderServiceTests.cs — anche in un progetto di test della soluzione; anche …Test.cs e ….Tests.cs |
Il menu indica la destinazione (“Switch to OrderServiceTests.cs”) ed è disattivato quando non c'è dove andare. Dà il meglio con un tasto tutto tuo — vedi sotto.
Sort Selected Lines
Ordina using, membri di enum o le voci di un elenco; le virgole restano dove l'elenco ne ha bisogno. Viene ordinato solo un elenco piatto — una voce per riga, stesso rientro, senza righe vuote né istruzioni — così un metodo o un intero file selezionato per errore non viene mai rimescolato; la barra di stato spiega perché.
Join Lines
Unisce le righe selezionate in una sola, oppure la riga del cursore con la successiva.
Find This File in Solution Explorer
Seleziona in Esplora soluzioni il file aperto nell'editor.
Collapse e Expand All Regions
Comprime o espande solo i blocchi #region; i metodi restano come sono. A differenza di Ctrl+M, Ctrl+O (che comprime anche i metodi) e Ctrl+M, Ctrl+L (tutto).
Nessuna scorciatoia è assegnata per impostazione predefinita — i tasti di Visual Studio restano come sono. Assegna qualsiasi comando in Strumenti › Opzioni › Ambiente › Tastiera: digita TidySmith. in “Mostra comandi contenenti”.
Impostazioni
Strumenti → Opzioni → SmithWorks → TidySmith. Ogni opzione ha una descrizione.
| Opzione | Predefinito |
|---|---|
| Azioni di TidySmith nella lampadina (Ctrl+.) | attivo |
| Puntini grigi dove qualcosa si può riordinare | attivo |
| Ordine dei membri | preset TidySmith |
| Anteprima prima di ordinare | attivo |
| Regioni | nessuna regione |
| Lunghezza della riga dei commenti | 120 |
| Riordino al salvataggio | disattivo |
| Metodo lungo (righe) · metodo complesso | 60 · 10 |
| Chiedi una valutazione sul Marketplace | attivo |
Le impostazioni sono salvate in %LocalAppData%\TidySmith; .editorconfig ha la precedenza dove contiene un valore.

Per repository: .editorconfig
Metti le regole accanto al codice e tutto il team ottiene lo stesso risultato; un valore in .editorconfig ha la precedenza sulla pagina delle opzioni (a meno che “Usa l'ordine da .editorconfig” sia disattivato).
[*.cs]
tidysmith_member_order = stylecop
tidysmith_regions = kind
tidysmith_region_min = 2
max_line_length = 120
| Chiave | Valori |
|---|---|
tidysmith_member_order | tidysmith, stylecop, codemaid, oppure i gruppi in ordine: constants, fields, constructors, properties, methods… |
tidysmith_regions | none, kind, access, kind_access |
tidysmith_region_min | Il numero minimo di membri per cui si crea una regione: 2 |
max_line_length | La lunghezza di riga a cui vengono mandati a capo i commenti |
FAQ
In cosa è diverso da CodeMaid?
TidySmith lavora sull'albero della sintassi di Roslyn invece che sul vecchio modello di codice, quindi #if, commenti e attributi restano al loro posto; mostra un'anteprima e si annulla con un solo Annulla; l'ordine può stare in .editorconfig; funziona su Visual Studio 2022 e 2026 su x64 e ARM64. Copre solo C# e tralascia ciò che Visual Studio ora fa da solo (pulizia del codice, avanzamento della compilazione).
Perché una classe non è stata ordinata?
TidySmith lascia stare una classe quando ordinarla potrebbe romperla o rovinarla: un errore di sintassi, un membro sulla riga di una parentesi graffa, due membri su una riga. I membri dentro #if o #region si spostano solo all'interno del loro blocco. I file generati non vengono mai toccati.
Posso annullare una modifica?
Sì: ogni comando e ogni salvataggio è una sola modifica, quindi un solo Ctrl+Z la annulla. In Esplora soluzioni, i file non aperti vengono scritti su disco — lì usa il tuo controllo della versione.
Perché Sort Selected Lines non ha fatto nulla?
Ordina solo un elenco piatto, quindi una selezione che è codice — istruzioni, blocchi, righe con rientri diversi o righe vuote in mezzo — non viene mai rimescolata. La barra di stato lo dice.
Add Regions non fa nulla.
Le regole predefinite sono nessuna regione. Scegli come suddividerle nel gruppo Regioni delle impostazioni (il comando lo apre), oppure imposta tidysmith_regions in .editorconfig.
E VB, C++ o XAML?
TidySmith è per C#. Altri linguaggi potranno seguire se verranno richiesti — faccelo sapere nel repository Feedback.
TidySmith invia dati?
No. Tutto viene eseguito dentro Visual Studio sui tuoi file; non viene inviato nulla da nessuna parte — nessuna telemetria, nessuna richiesta.
Dove posso segnalare un problema o suggerire una funzionalità?
Apri una issue nel repository Feedback su GitHub: ci sono moduli per bug e idee (cambia i nomi privati). Puoi anche usare la scheda Q&A nel Marketplace.
Registro modifiche
1.0.2
- Una sola richiesta di valutazione sul Marketplace, dopo che l’estensione è stata utile — con Più tardi e Non chiedere più, e un’opzione per disattivarla.
1.0.1
- Order Members e la finestra Structure sulla barra degli strumenti SmithWorks, condivisa con le altre estensioni SmithWorks (Visualizza › Barre degli strumenti › SmithWorks).
1.0.0
- Prima versione pubblica.
Commenti che rientrano
Format Comment manda a capo il commento
//o///in cui si trova il cursore (o tutti i commenti del file) alla tua lunghezza di riga —max_line_lengthda.editorconfig, oppure 120. Le righe lunghe vengono spezzate, quelle corte unite, un<summary>lungo ottiene righe proprie. Esempi di codice (<code>), elenchi, righe separatrici e codice commentato restano come sono.