LazowskiAnton · Extensions

TidySmith

Kod C# uporządkowany tak, jak chce Twój zespół: składowe posortowane i pogrupowane, z podglądem i jednym cofnięciem; regiony według Twoich reguł; komentarze zawinięte do długości wiersza — a szare kropki w edytorze pokazują, co można uporządkować.

Bezpłatnie · Visual Studio 2022 i 2026 · 14 języków interfejsu · bez telemetrii

Dlaczego TidySmith

Klasa przed i po Order Members: najpierw stałe i pola, potem konstruktor, właściwości i metody

Bezpieczny z założenia

Oparty na drzewie składni Roslyn: składowe przenoszą się razem ze swoimi komentarzami, dokumentacją i atrybutami; granice bloków #if i #region nigdy nie są przekraczane; klasy, których nie da się bezpiecznie uporządkować, pozostają nietknięte. Podgląd najpierw pokazuje różnice, a „Zastosuj” to jedno cofnięcie.

Kolejność Twojego zespołu

Kolejność grup, dostęp, składowe statyczne, nazwy — ustaw to na stronie opcji albo zapisz w .editorconfig, a każdy dostanie ten sam wynik. Ustawienia wstępne dla StyleCop i CodeMaid są wbudowane.

Do odkrycia bez instrukcji

Szare kropki pod klasą o zaburzonej kolejności lub pod zbyt długim komentarzem; Ctrl+. proponuje poprawkę obok akcji Visual Studio. Gdy poznasz polecenia, wyłącz wskazówki.

Bezpłatnie, bez haczyków

Bez subskrypcji, bez wersji „pro”, bez zbierania danych i bez komunikatów w oknie „Dane wyjściowe” ani przy uruchamianiu. Jedyne, o co kiedykolwiek poprosimy — gdy już przez jakiś czas będziesz z niego korzystać — to ocena w Marketplace. Działa w Visual Studio 2022 i 2026, x64 i ARM64.

Funkcje

Każde polecenie jest w menu Edytuj › TidySmith i w menu kontekstowym edytora kodu (prawy przycisk › TidySmith); Order Members także w menu kontekstowym plików, folderów i projektów w Eksploratorze rozwiązań.

Porządkowanie składowych

Order Members… sortuje składowe klasy według rodzaju (stałe, pola, konstruktory, właściwości, metody…), potem według dostępu (najpierw publiczne), statyczne przed składowymi wystąpień i, jeśli chcesz, według nazwy — w kolejności ustawionej na stronie opcji lub w .editorconfig.

Ustawienia wstępne na początek: TidySmith (przeciążenia i implementacje interfejsów razem), StyleCop (SA1201, SA1202, SA1204 — ściśle według dostępu) i CodeMaid (domyślna kolejność CodeMaid, dla zespołów, które z niego przechodzą).

Wskazówki w edytorze

Tam, gdzie TidySmith może pomóc, pod nazwą pojawiają się trzy szare kropki — tak, jak Visual Studio oznacza własne sugestie. Wskaźnik na nich mówi, o co chodzi; Ctrl+. proponuje poprawkę z podglądem zmiany.

Szare kropki pod nazwą klasy i długim komentarzem; żarówka z akcją porządkowania składowych i jej podglądem
Kursor naCtrl+. proponuje
Nazwie klasyUporządkuj składowe klasy lub pliku, dodaj regiony według Twoich reguł, usuń regiony klasy, otwórz w oknie struktury
Komentarzu dłuższym niż długość wierszaZawiń komentarz
Wierszu #regionUsuń ten region (kod zostaje)
Kilku zaznaczonych wierszachSortuj wiersze (tylko płaska lista), połącz wiersze

Kropki pojawiają się przy klasie o zaburzonej kolejności, komentarzu dłuższym niż długość wiersza i regionach różniących się od Twoich reguł — i nigdzie więcej. Kropki i akcje w żarówce mają osobne przełączniki; „Tylko w plikach, które zmieniłem” zostawia stary kod w spokoju.

Regiony według Twoich reguł

Add Regions to This File… wstawia wiersze #region tam, gdzie mówią Twoje reguły, po podglądzie. Regiony to decyzja zespołu, dlatego domyślnie jest bez regionów: dopóki nie wybierzesz, polecenie otwiera ustawienia.

Reguły regionów i klasa z regionami Fields, Methods i IDisposable

Reguła StyleCop SA1124 zabrania regionów; dlatego domyślnie regionów nie ma — i dlatego porządkowanie przy zapisie z tym ustawieniem je usuwa.

Komentarze, które się mieszczą

Format Comment zawija komentarz // lub /// przy kursorze (albo każdy komentarz pliku) do długości wiersza — max_line_length z .editorconfig lub 120. Długie wiersze są łamane, krótkie łączone, długi <summary> dostaje własne wiersze. Przykłady kodu (<code>), listy, wiersze separatorów i zakomentowany kod pozostają bez zmian.

Komentarz dokumentacji przed i po Format Comment

Porządkowanie przy zapisie

Gdy plik C# jest zapisywany, TidySmith może uporządkować jego składowe, ustawić regiony zgodnie z regułami, zawinąć komentarze i usunąć spacje na końcu wierszy oraz nadmiarowe puste wiersze — każdy krok ma własny przełącznik. Tylko zapisywany plik, nigdy pliki generowane; pasek stanu informuje, co się zmieniło, a Ctrl+Z to cofa. Tidy This File wykonuje te same kroki na żądanie.

Domyślnie wyłączone. Włącz, gdy Order Members daje wynik, jakiego chce Twój zespół — inaczej pierwszy zapis starego pliku przestawi w nim wszystko.

Okno struktury

Widok › Inne okna › TidySmith Structure: typy i składowe aktywnego pliku C#. Okno podąża za kursorem, kliknięcie przechodzi do składowej, wyszukiwanie filtruje, a składowa przeciągnięta na inną przenosi się tam — tym samym bezpiecznym ruchem co w Order Members. Metody pokazują swoją długość i złożoność cyklomatyczną; po przekroczeniu limitów ze strony opcji zmieniają kolor na pomarańczowy.

Okno struktury ze składowymi klasy i długą metodą na pomarańczowo

Małe pomocniki

Polecenia, których brakowało po CodeMaid, w menu Edytuj › TidySmith i w menu kontekstowym edytora.

Switch File

Otwiera plik, który należy do bieżącego — znaczniki i ich kod, plik zasobów i jego projektanta, kod i jego testy — bez szukania go w Eksploratorze rozwiązań.

ZDo (i z powrotem)
MainWindow.xamlMainWindow.xaml.cs
Order.razorOrder.razor.cs
Index.cshtmlIndex.cshtml.cs
Strings.resxStrings.Designer.cs
MainForm.csMainForm.Designer.cs
OrderService.csOrderServiceTests.cs — także w projekcie testowym rozwiązania; również …Test.cs i ….Tests.cs

Menu podaje cel („Switch to OrderServiceTests.cs”) i jest wyłączone, gdy nie ma dokąd przejść. Najlepiej sprawdza się z własnym skrótem — patrz niżej.

Sort Selected Lines

Sortuje dyrektywy using, składowe enum lub elementy listy; przecinki zostają tam, gdzie lista ich potrzebuje. Sortowana jest tylko płaska lista — jeden element na wiersz, to samo wcięcie, bez pustych wierszy i instrukcji — więc przypadkowo zaznaczona metoda lub cały plik nigdy nie zostaną pomieszane; pasek stanu mówi dlaczego.

Join Lines

Łączy zaznaczone wiersze w jeden albo wiersz przy kursorze z następnym.

Find This File in Solution Explorer

Zaznacza plik z edytora w Eksploratorze rozwiązań.

Collapse i Expand All Regions

Zwija lub rozwija tylko bloki #region; metody pozostają bez zmian. W odróżnieniu od Ctrl+M, Ctrl+O (zwija też metody) i Ctrl+M, Ctrl+L (wszystko).

Domyślnie żaden skrót nie jest zajęty — klawisze Visual Studio pozostają bez zmian. Przypisz dowolne polecenie w Narzędzia › Opcje › Środowisko › Klawiatura: wpisz TidySmith. w polu „Pokaż polecenia zawierające”.

Ustawienia

Narzędzia → Opcje → SmithWorks → TidySmith. Każda opcja ma opis.

OpcjaDomyślnie
Akcje TidySmith w żarówce (Ctrl+.)wł.
Szare kropki tam, gdzie można coś uporządkowaćwł.
Kolejność składowychustawienie wstępne TidySmith
Podgląd przed porządkowaniemwł.
Regionybez regionów
Długość wiersza komentarzy120
Porządkowanie przy zapisiewył.
Długa metoda (wiersze) · złożona metoda60 · 10
Proś o ocenę w Marketplacewł.

Ustawienia są przechowywane w %LocalAppData%\TidySmith; pierwszeństwo ma .editorconfig, jeśli zawiera wartość.

Strona opcji TidySmith
Strona opcji.

Dla repozytorium: .editorconfig

Umieść reguły obok kodu, a cały zespół dostanie ten sam wynik; wartość w .editorconfig ma pierwszeństwo przed stroną opcji (chyba że opcja „Użyj kolejności z .editorconfig” jest wyłączona).

[*.cs]
tidysmith_member_order = stylecop
tidysmith_regions = kind
tidysmith_region_min = 2
max_line_length = 120
KluczWartości
tidysmith_member_ordertidysmith, stylecop, codemaid lub grupy w kolejności: constants, fields, constructors, properties, methods…
tidysmith_regionsnone, kind, access, kind_access
tidysmith_region_minNajmniejsza liczba składowych, dla której tworzony jest region: 2
max_line_lengthDługość wiersza, do której zawijane są komentarze

FAQ

Czym różni się od CodeMaid?

TidySmith działa na drzewie składni Roslyn zamiast na starym modelu kodu, więc #if, komentarze i atrybuty zostają na swoim miejscu; pokazuje podgląd i cofa się jednym krokiem; kolejność może być zapisana w .editorconfig; działa w Visual Studio 2022 i 2026 na x64 i ARM64. Obsługuje tylko C# i pomija to, co Visual Studio robi teraz samo (oczyszczanie kodu, postęp kompilacji).

Dlaczego klasa nie została uporządkowana?

TidySmith zostawia klasę w spokoju, gdy porządkowanie mogłoby ją zepsuć lub zniekształcić: błąd składni, składowa w wierszu nawiasu klamrowego, dwie składowe w jednym wierszu. Składowe wewnątrz #if lub #region przesuwają się tylko w obrębie swojego bloku. Pliki generowane nigdy nie są ruszane.

Czy mogę cofnąć zmianę?

Tak: każde polecenie i każdy zapis to jedna edycja, więc jedno Ctrl+Z ją cofa. W Eksploratorze rozwiązań pliki, które nie są otwarte, są zapisywane na dysk — tam użyj kontroli wersji.

Dlaczego Sort Selected Lines nic nie zrobiło?

Sortuje tylko płaską listę, więc zaznaczenie, które jest kodem — instrukcje, bloki, wiersze z różnymi wcięciami lub pustymi wierszami pomiędzy — nigdy nie zostanie pomieszane. Pasek stanu o tym informuje.

Add Regions nic nie robi.

Domyślna reguła to bez regionów. Wybierz sposób podziału w grupie Regiony w ustawieniach (polecenie ją otwiera) albo ustaw tidysmith_regions w .editorconfig.

A co z VB, C++ lub XAML?

TidySmith jest dla C#. Inne języki mogą się pojawić, jeśli będą o nie prośby — napisz w repozytorium Feedback.

Czy TidySmith wysyła jakieś dane?

Nie. Wszystko działa wewnątrz Visual Studio na Twoich plikach; nic nie jest nigdzie wysyłane — bez telemetrii, bez żądań.

Gdzie zgłosić problem lub zaproponować funkcję?

Otwórz zgłoszenie w repozytorium Feedback na GitHubie — są tam formularze dla błędów i pomysłów (prosimy zmienić prywatne nazwy). Możesz też skorzystać z karty Q&A w Marketplace.

Historia zmian

1.0.2

1.0.1

1.0.0