LazowskiAnton · Extensions

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

Una classe prima e dopo Order Members: prima costanti e campi, poi il costruttore, le proprietà e i metodi

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à

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.

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.

Puntini grigi sotto il nome di una classe e un commento lungo; la lampadina con Ordina i membri e la sua anteprima
Cursore suCtrl+. propone
Il nome di una classeOrdinare 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 rigaMandare a capo il commento
Una riga #regionRimuovere questa regione (il codice resta)
Più righe selezionateOrdinare 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.

Regole delle regioni e una classe con le regioni Fields, Methods e IDisposable

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.

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_length da .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.

Un commento di documentazione prima e dopo Format Comment

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.

La finestra Structure con i membri di una classe e un metodo lungo in arancione

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.

DaA (e ritorno)
MainWindow.xamlMainWindow.xaml.cs
Order.razorOrder.razor.cs
Index.cshtmlIndex.cshtml.cs
Strings.resxStrings.Designer.cs
MainForm.csMainForm.Designer.cs
OrderService.csOrderServiceTests.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.

OpzionePredefinito
Azioni di TidySmith nella lampadina (Ctrl+.)attivo
Puntini grigi dove qualcosa si può riordinareattivo
Ordine dei membripreset TidySmith
Anteprima prima di ordinareattivo
Regioninessuna regione
Lunghezza della riga dei commenti120
Riordino al salvataggiodisattivo
Metodo lungo (righe) · metodo complesso60 · 10
Chiedi una valutazione sul Marketplaceattivo

Le impostazioni sono salvate in %LocalAppData%\TidySmith; .editorconfig ha la precedenza dove contiene un valore.

Pagina delle opzioni di TidySmith
La pagina delle opzioni.

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
ChiaveValori
tidysmith_member_ordertidysmith, stylecop, codemaid, oppure i gruppi in ordine: constants, fields, constructors, properties, methods…
tidysmith_regionsnone, kind, access, kind_access
tidysmith_region_minIl numero minimo di membri per cui si crea una regione: 2
max_line_lengthLa 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

1.0.1

1.0.0