LazowskiAnton · Extensions

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

Une classe avant et après Order Members : d’abord les constantes et les champs, puis le constructeur, les propriétés et les méthodes

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

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.

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.

Des points gris sous un nom de classe et un long commentaire ; l’ampoule avec Trier les membres et son aperçu
Curseur surCtrl+. propose
Le nom d’une classeTrier 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 ligneAjuster le commentaire
Une ligne #regionSupprimer cette région (le code reste)
Plusieurs lignes sélectionnéesTrier 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.

Règles de régions et une classe avec les régions Fields, Methods et IDisposable

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.

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

Un commentaire de documentation avant et après Format Comment

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.

La fenêtre de structure avec les membres d’une classe et une longue méthode 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.

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

OptionPar défaut
Actions TidySmith dans l’ampoule (Ctrl+.)activé
Points gris là où quelque chose peut être rangéactivé
Ordre des membrespréréglage TidySmith
Aperçu avant de trieractivé
Régionsaucune région
Longueur de ligne des commentaires120
Ranger à l’enregistrementdésactivé
Méthode longue (lignes) · méthode complexe60 · 10
Demander une note sur le Marketplaceactivé

Les paramètres sont stockés dans %LocalAppData%\TidySmith ; .editorconfig l’emporte là où il définit une valeur.

Page d’options de TidySmith
La page d’options.

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_ordertidysmith, stylecop, codemaid, ou les groupes dans l’ordre : constants, fields, constructors, properties, methods…
tidysmith_regionsnone, kind, access, kind_access
tidysmith_region_minLe nombre minimal de membres pour créer une région : 2
max_line_lengthLa 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

1.0.1

1.0.0