TidySmith
Du code C# rangé dans l’ordre voulu par votre équipe : membres triés et regroupés avec un aperçu et une seule annulation, régions selon vos règles, commentaires ajustés à votre longueur de ligne — et des points gris dans l’éditeur là où quelque chose peut être rangé.
Gratuit · Visual Studio 2022 et 2026 · 14 langues d’interface · aucune télémétrie
Pourquoi TidySmith

Sûr par conception
Fondé sur l’arbre syntaxique de Roslyn : les membres se déplacent avec leurs commentaires, leur documentation et leurs attributs ; les blocs #if et #region ne sont jamais franchis ; les classes qui ne peuvent pas être triées sans risque sont laissées telles quelles. Un aperçu montre d’abord le diff, et Appliquer s’annule en une fois.
L’ordre de votre équipe
L’ordre des groupes, l’accès, les membres statiques, les noms — à définir dans la page d’options ou dans .editorconfig, pour que tout le monde obtienne le même résultat. Des préréglages pour StyleCop et CodeMaid sont intégrés.
Trouvé sans manuel
Des points gris sous une classe dans le désordre ou un commentaire trop long ; Ctrl+. propose la correction à côté des actions de Visual Studio. Une fois les commandes connues, désactivez les indications.
Gratuit, sans contrepartie
Ni abonnement, ni version « pro », ni collecte de données, ni messages dans la fenêtre Sortie ou au démarrage. La seule chose que nous vous demanderons — quand vous l’aurez utilisée pendant un certain temps — c’est une note sur le Marketplace. Fonctionne avec Visual Studio 2022 et 2026, x64 et ARM64.
Fonctionnalités
- Trier les membres d’une classe, d’un fichier ou des fichiers sélectionnés dans l’Explorateur de solutions — avec un aperçu de ce qui se déplace.
- Indications dans l’éditeur : des points gris là où quelque chose peut être rangé, la correction dans l’ampoule (Ctrl+.).
- Régions selon vos règles : par groupe de membres, par accès ou les deux, avec vos noms de région ; ou aucune région.
- Des commentaires qui tiennent : commentaires
//et///ajustés à votre longueur de ligne, lignes courtes réunies. - Ranger à l’enregistrement : les étapes choisies s’exécutent à l’enregistrement d’un fichier C# ; désactivé par défaut.
- Fenêtre de structure : les membres du fichier, la taille et la complexité des méthodes, le réordonnancement par glisser-déposer.
- Petits utilitaires : passer au fichier associé, trier et joindre des lignes, trouver le fichier dans l’Explorateur de solutions, réduire ou développer uniquement les régions.
Toutes les commandes se trouvent dans Édition › TidySmith et dans le menu contextuel de l’éditeur de code (clic droit › TidySmith) ; Order Members aussi dans le menu contextuel des fichiers, dossiers et projets de l’Explorateur de solutions.
Trier les membres
Order Members… trie les membres d’une classe par type (constantes, champs, constructeurs, propriétés, méthodes…), puis par accès (publics d’abord), les statiques avant les membres d’instance, et par nom si vous le souhaitez — dans l’ordre défini dans la page d’options ou dans .editorconfig.
- D’abord un aperçu : le diff de ce qui se déplace ; Appliquer est une seule modification, qu’une seule annulation défait entièrement. « Ne plus demander » désactive l’aperçu.
- Où : la classe sous le curseur ou le fichier entier (au choix dans l’aperçu), ou chaque fichier C# sélectionné dans l’Explorateur de solutions — fichiers, dossiers, projets.
- Ce qui accompagne un membre : ses commentaires, sa documentation et ses attributs. Les lignes vides restent comme elles étaient ; une ligne vide sépare les groupes.
- Ce qui n’est jamais touché : les membres placés dans
#ifou#regionne sont triés qu’à l’intérieur de leur bloc ; les classes avec un membre sur la ligne d’une accolade, deux membres sur une même ligne ou des erreurs de syntaxe restent telles quelles ; les fichiers générés (*.g.cs,*.Designer.cs) sont ignorés.
Des préréglages pour commencer : TidySmith (surcharges et implémentations d’interface gardées ensemble), StyleCop (SA1201, SA1202, SA1204 — strictement par accès) et CodeMaid (le réglage par défaut de CodeMaid, pour les équipes qui en viennent).
Indications dans l’éditeur
Là où TidySmith peut aider, le nom reçoit trois points gris — comme Visual Studio marque ses propres suggestions. Le pointeur dessus indique de quoi il s’agit ; Ctrl+. propose la correction, avec un aperçu de la modification.

| Curseur sur | Ctrl+. propose |
|---|---|
| Le nom d’une classe | Trier les membres de la classe ou du fichier, ajouter des régions selon vos règles, supprimer les régions de la classe, ouvrir dans la fenêtre de structure |
| Un commentaire plus long que la longueur de ligne | Ajuster le commentaire |
Une ligne #region | Supprimer cette région (le code reste) |
| Plusieurs lignes sélectionnées | Trier les lignes (liste simple uniquement), joindre les lignes |
Les points apparaissent pour une classe dans le désordre, un commentaire plus long que la longueur de ligne et des régions qui diffèrent de vos règles — rien d’autre. Les points et les actions de l’ampoule ont des interrupteurs distincts ; « Seulement dans les fichiers que j’ai modifiés » laisse l’ancien code tranquille.
Régions selon vos règles
Add Regions to This File… place des lignes #region là où vos règles le prévoient, après un aperçu. Les régions sont une décision d’équipe, c’est pourquoi le réglage par défaut est aucune région : la commande ouvre les paramètres tant que vous n’avez pas choisi.

- Comment découper : une région par groupe de membres (Fields, Methods…), par accès (Public, Private…), ou les deux (Public methods).
- Vos noms : chaque groupe a son nom de région ; les groupes de même nom partagent une région, un groupe désactivé reste hors des régions. Les implémentations d’interface peuvent recevoir une région nommée d’après l’interface (IDisposable).
- Pas de bruit : en dessous du minimum de membres (2 par défaut), pas de région ; une région autour d’un seul constructeur n’aide personne.
- Relancez-la quand vous voulez : les régions à l’intérieur des classes sont reconstruites, pas imbriquées. Les membres sont d’abord triés, pour que chaque groupe soit d’un seul tenant.
- À la main : Add Region Around Selection (le curseur attend le nom après
#region), Remove Region at Caret, Remove Regions in This File — seules les lignes#regionet#endregiondisparaissent, le code reste.
La règle StyleCop SA1124 interdit les régions ; c’est pourquoi le réglage par défaut est aucune région — et pourquoi le rangement à l’enregistrement les supprime avec ce réglage.
Ranger à l’enregistrement
À l’enregistrement d’un fichier C#, TidySmith peut trier ses membres, placer les régions selon les règles, ajuster les commentaires et supprimer les espaces de fin et les lignes vides superflues — chaque étape a son propre interrupteur. Uniquement le fichier enregistré, jamais les fichiers générés ; la barre d’état indique ce qui a changé, et Ctrl+Z annule. Tidy This File exécute les mêmes étapes à la demande.
Désactivé par défaut. Activez-le une fois qu’Order Members donne le résultat voulu par votre équipe — sinon le premier enregistrement d’un ancien fichier le réordonne entièrement.
Fenêtre de structure
Affichage › Autres fenêtres › TidySmith Structure : les types et les membres du fichier C# actif. Elle suit le curseur, un clic mène au membre, la recherche filtre, et un membre glissé sur un autre s’y déplace — le même déplacement sûr qu’avec Order Members. Les méthodes affichent leur longueur et leur complexité cyclomatique ; au-delà des limites de la page d’options, elles passent en orange.

Petits utilitaires
Les commandes qui manquaient depuis CodeMaid, dans Édition › TidySmith et le menu contextuel de l’éditeur.
Switch File
Ouvre le fichier associé au fichier courant — le balisage et son code, un fichier de ressources et son concepteur, le code et ses tests — sans le chercher dans l’Explorateur de solutions.
| De | Vers (et retour) |
|---|---|
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 — aussi dans un projet de test de la solution ; …Test.cs et ….Tests.cs également |
Le menu nomme la cible (« Switch to OrderServiceTests.cs ») et est désactivé quand il n’y a nulle part où aller. Il prend tout son sens avec un raccourci à vous — voir plus bas.
Sort Selected Lines
Trie les usings, les membres d’un enum ou les éléments d’une liste ; les virgules restent là où la liste en a besoin. Seule une liste simple est triée — un élément par ligne, même retrait, sans lignes vides ni instructions — si bien qu’une méthode ou un fichier entier sélectionné par erreur n’est jamais mélangé ; la barre d’état explique pourquoi.
Join Lines
Joint les lignes sélectionnées en une seule, ou la ligne du curseur avec la suivante.
Find This File in Solution Explorer
Sélectionne le fichier de l’éditeur dans l’Explorateur de solutions.
Collapse et Expand All Regions
Réduit ou développe uniquement les blocs #region ; les méthodes restent telles quelles. Contrairement à Ctrl+M, Ctrl+O (qui réduit aussi les méthodes) et Ctrl+M, Ctrl+L (tout).
Aucun raccourci n’est pris par défaut — les touches de Visual Studio restent telles quelles. Associez une commande dans Outils › Options › Environnement › Clavier : tapez TidySmith. dans « Afficher les commandes contenant ».
Paramètres
Outils → Options → SmithWorks → TidySmith. Chaque option est décrite.
| Option | Par défaut |
|---|---|
| Actions TidySmith dans l’ampoule (Ctrl+.) | activé |
| Points gris là où quelque chose peut être rangé | activé |
| Ordre des membres | préréglage TidySmith |
| Aperçu avant de trier | activé |
| Régions | aucune région |
| Longueur de ligne des commentaires | 120 |
| Ranger à l’enregistrement | désactivé |
| Méthode longue (lignes) · méthode complexe | 60 · 10 |
| Demander une note sur le Marketplace | activé |
Les paramètres sont stockés dans %LocalAppData%\TidySmith ; .editorconfig l’emporte là où il définit une valeur.

Par dépôt : .editorconfig
Placez les règles à côté du code, et toute l’équipe obtient le même résultat ; une valeur dans .editorconfig l’emporte sur la page d’options (sauf si « Utiliser l’ordre du fichier .editorconfig » est désactivé).
[*.cs]
tidysmith_member_order = stylecop
tidysmith_regions = kind
tidysmith_region_min = 2
max_line_length = 120
| Clé | Valeurs |
|---|---|
tidysmith_member_order | tidysmith, stylecop, codemaid, ou les groupes dans l’ordre : constants, fields, constructors, properties, methods… |
tidysmith_regions | none, kind, access, kind_access |
tidysmith_region_min | Le nombre minimal de membres pour créer une région : 2 |
max_line_length | La longueur de ligne à laquelle les commentaires sont ajustés |
FAQ
En quoi est-ce différent de CodeMaid ?
TidySmith travaille sur l’arbre syntaxique de Roslyn au lieu de l’ancien modèle de code, donc #if, commentaires et attributs restent à leur place ; il affiche un aperçu et s’annule en une fois ; l’ordre peut être défini dans .editorconfig ; il fonctionne avec Visual Studio 2022 et 2026 sur x64 et ARM64. Il ne couvre que C# et laisse de côté ce que Visual Studio fait désormais lui-même (nettoyage du code, progression de la génération).
Pourquoi une classe n’a-t-elle pas été triée ?
TidySmith laisse une classe telle quelle quand le tri risquerait de la casser ou de la déformer : une erreur de syntaxe, un membre sur la ligne d’une accolade, deux membres sur une même ligne. Les membres placés dans #if ou #region ne se déplacent qu’à l’intérieur de leur bloc. Les fichiers générés ne sont jamais touchés.
Puis-je annuler une modification ?
Oui : chaque commande et chaque enregistrement est une seule modification, qu’un seul Ctrl+Z annule. Dans l’Explorateur de solutions, les fichiers non ouverts sont écrits directement sur le disque — utilisez votre contrôle de version dans ce cas.
Pourquoi Sort Selected Lines n’a-t-il rien fait ?
Il ne trie qu’une liste simple, si bien qu’une sélection qui est du code — instructions, blocs, lignes de retraits différents ou séparées par des lignes vides — n’est jamais mélangée. La barre d’état le signale.
Add Regions ne fait rien.
Les règles par défaut sont aucune région. Choisissez comment les découper dans le groupe « Régions » des paramètres (la commande l’ouvre), ou définissez tidysmith_regions dans .editorconfig.
Et VB, C++ ou XAML ?
TidySmith est conçu pour C#. D’autres langages pourront suivre s’ils sont demandés — dites-le-nous dans le dépôt Feedback.
TidySmith envoie-t-il des données ?
Non. Tout s’exécute dans Visual Studio sur vos fichiers ; rien n’est envoyé nulle part — aucune télémétrie, aucune requête.
Où signaler un problème ou proposer une fonctionnalité ?
Ouvrez un ticket dans le dépôt Feedback sur GitHub — il y a des formulaires pour les bogues et les idées (modifiez les noms confidentiels). Vous pouvez aussi utiliser l’onglet Q&A sur le Marketplace.
Historique des versions
1.0.2
- Une demande unique de note sur le Marketplace, une fois l’extension devenue utile — avec Plus tard et Ne plus demander, et une option pour la désactiver.
1.0.1
- Order Members et la fenêtre Structure dans la barre d’outils SmithWorks, partagée avec les autres extensions SmithWorks (Affichage › Barres d’outils › SmithWorks).
1.0.0
- Première version publique.
Des commentaires qui tiennent
Format Comment ajuste le commentaire
//ou///sous le curseur (ou tous les commentaires du fichier) à votre longueur de ligne —max_line_lengthde.editorconfig, ou 120. Les lignes longues sont coupées, les courtes réunies, un long<summary>obtient ses propres lignes. Les exemples de code (<code>), les listes, les lignes de séparation et le code commenté restent tels quels.