TidySmith
C# kodu ekibinizin istediği sıraya konur: üyeler bir önizleme ve tek bir Geri Al ile sıralanıp gruplanır, bölgeler kurallarınıza göre oluşturulur, yorumlar satır uzunluğunuza göre kaydırılır — ve düzenleyicide düzenlenebilecek yerlerin altında gri noktalar belirir.
Ücretsiz · Visual Studio 2022 ve 2026 · 14 arayüz dili · telemetri yok
Neden TidySmith

Tasarımı gereği güvenli
Roslyn söz dizimi ağacı üzerine kuruludur: üyeler yorumları, belgeleri ve öznitelikleriyle birlikte taşınır; #if ve #region bloklarının sınırı asla aşılmaz; güvenle sıralanamayan sınıflara dokunulmaz. Önce bir önizleme farkı gösterir ve Uygula tek bir Geri Al ile geri alınır.
Ekibinizin sırası
Grupların sırası, erişim, statik üyeler, adlar — bunları seçenekler sayfasında ayarlayın ya da .editorconfig dosyasına yazın; böylece herkes aynı sonucu alır. StyleCop ve CodeMaid ön ayarları yerleşiktir.
Kılavuzsuz keşfedilir
Sırası bozuk bir sınıfın veya fazla uzun bir yorumun altında gri noktalar; Ctrl+. düzeltmeyi Visual Studio eylemlerinin yanında sunar. Komutları öğrendikten sonra ipuçlarını kapatın.
Ücretsiz, koşulsuz
Abonelik yok, “pro” sürüm yok, veri toplama yok, Çıktı penceresinde ya da başlangıçta mesaj yok. Sizden isteyeceğimiz tek şey — bir süre kullandıktan sonra — Marketplace'te bir değerlendirme. Visual Studio 2022 ve 2026'da, x64 ve ARM64 üzerinde çalışır.
Özellikler
- Bir sınıfın, bir dosyanın veya Çözüm Gezgini'nde seçili dosyaların üyelerini sıralama — neyin taşınacağını gösteren bir önizlemeyle.
- Düzenleyicide ipuçları: düzenlenebilecek yerlerde gri noktalar, düzeltme ampulde (Ctrl+.).
- Kurallarınıza göre bölgeler: üye grubuna, erişime veya her ikisine göre, sizin bölge adlarınızla; ya da hiç bölge olmadan.
- Sığan yorumlar:
//ve///yorumları satır uzunluğunuza göre kaydırılır, kısa satırlar birleştirilir. - Kaydederken düzenleme: seçtiğiniz adımlar bir C# dosyası kaydedildiğinde çalışır; varsayılan olarak kapalıdır.
- Structure penceresi: dosyanın üyeleri, yöntemlerin boyutu ve karmaşıklığı, sürükleyerek yeniden sıralama.
- Küçük yardımcılar: ilgili dosyaya geçme, satırları sıralama ve birleştirme, dosyayı Çözüm Gezgini'nde bulma, yalnızca bölgeleri daraltma veya genişletme.
Tüm komutlar Düzen › TidySmith menüsünde ve kod düzenleyicisinin bağlam menüsündedir (sağ tıklama › TidySmith); Order Members ayrıca Çözüm Gezgini'nde dosyaların, klasörlerin ve projelerin bağlam menüsündedir.
Üyeleri sıralama
Order Members… bir sınıfın üyelerini türe göre (sabitler, alanlar, oluşturucular, özellikler, yöntemler…), sonra erişime göre (önce public), statik üyeleri örnek üyelerden önce ve isterseniz ada göre sıralar — seçenekler sayfasında veya .editorconfig dosyasında belirlenen sırayla.
- Önce önizleme: neyin taşınacağının farkı; Uygula tek bir düzenlemedir, bu yüzden tek bir Geri Al hepsini geri alır. “Bir daha sorma” önizlemeyi kapatır.
- Nerede: imlecin bulunduğu sınıf veya tüm dosya (önizlemede seçilir) ya da Çözüm Gezgini'nde seçili her C# dosyası — dosyalar, klasörler, projeler.
- Üyeyle birlikte ne taşınır: yorumları, belgeleri ve öznitelikleri. Boş satırlar olduğu gibi korunur; gruplar arasına bir boş satır girer.
- Nelere asla dokunulmaz:
#ifveya#regioniçindeki üyeler yalnızca kendi blokları içinde sıralanır; bir küme ayracıyla aynı satırda üyesi olan, tek satırda iki üyesi olan veya söz dizimi hatası içeren sınıflar olduğu gibi bırakılır; oluşturulan dosyalar (*.g.cs,*.Designer.cs) atlanır.
Başlangıç için ön ayarlar: TidySmith (aşırı yüklemeler ve arabirim uygulamaları bir arada), StyleCop (SA1201, SA1202, SA1204 — kesin olarak erişime göre) ve CodeMaid (CodeMaid'den geçen ekipler için CodeMaid varsayılanı).
Düzenleyicide ipuçları
TidySmith'in yardımcı olabileceği yerde adın altında üç gri nokta belirir — Visual Studio'nun kendi önerilerini işaretlediği gibi. İşaretçiyi üzerlerine getirince ne olduğu görünür; Ctrl+. değişikliğin önizlemesiyle birlikte düzeltmeyi sunar.

| İmleç şurada | Ctrl+. şunları sunar |
|---|---|
| Bir sınıfın adı | Sınıfın veya dosyanın üyelerini sıralama, kurallarınıza göre bölgeler ekleme, sınıfın bölgelerini kaldırma, Structure penceresinde açma |
| Satır uzunluğundan uzun bir yorum | Yorumu kaydırma |
Bir #region satırı | Bu bölgeyi kaldırma (kod kalır) |
| Seçili birkaç satır | Satırları sıralama (yalnızca düz bir liste), satırları birleştirme |
Noktalar sırası bozuk bir sınıf, satır uzunluğundan uzun bir yorum ve kurallarınızdan farklı bölgeler için görünür — başka hiçbir şey için değil. Noktaların ve ampul eylemlerinin ayrı anahtarları vardır; “Yalnızca değiştirdiğim dosyalarda” eski kodu sessiz tutar.
Kurallarınıza göre bölgeler
Add Regions to This File… bir önizlemeden sonra #region satırlarını kurallarınızın söylediği yerlere koyar. Bölgeler bir ekip kararıdır, bu yüzden varsayılan değer bölge yok şeklindedir: siz seçene kadar komut ayarları açar.

- Nasıl ayrılır: üye grubu başına bir bölge (Fields, Methods…), erişim başına (Public, Private…) veya her ikisi (Public methods).
- Sizin adlarınız: her grubun kendi bölge adı vardır; aynı adlı gruplar bir bölgeyi paylaşır, kapalı bir grup bölgelerin dışında kalır. Arabirim uygulamaları arabirimin adını taşıyan bir bölge alabilir (IDisposable).
- Gürültü yok: en az sayıdan (varsayılan 2) daha az üye bölge almaz; tek bir oluşturucunun etrafındaki bölge kimseye yardım etmez.
- İstediğiniz zaman yeniden çalıştırın: sınıfların içindeki bölgeler iç içe eklenmez, yeniden oluşturulur. Üyeler önce sıralanır, böylece her grup tek parça olur.
- Elle: Add Region Around Selection (imleç ad için
#regionsonrasında bekler), Remove Region at Caret, Remove Regions in This File — yalnızca#regionve#endregionsatırları kaldırılır, kod kalır.
StyleCop'un SA1124 kuralı bölgeleri yasaklar; varsayılanın bölge yok olmasının nedeni budur — kaydederken düzenlemenin bu ayarla bölgeleri kaldırmasının nedeni de.
Kaydederken düzenleme
Bir C# dosyası kaydedildiğinde TidySmith üyelerini sıralayabilir, bölgeleri kurallara göre yerleştirebilir, yorumları kaydırabilir, sondaki boşlukları ve fazla boş satırları kaldırabilir — her adımın kendi anahtarı vardır. Yalnızca kaydedilen dosya, oluşturulan dosyalar asla; durum çubuğu neyin değiştiğini söyler ve Ctrl+Z geri alır. Tidy This File aynı adımları istendiğinde çalıştırır.
Varsayılan olarak kapalıdır. Order Members ekibinizin istediği sonucu verdiğinde açın — aksi halde eski bir dosyanın ilk kaydı onu baştan sona yeniden sıralar.
Structure penceresi
Görünüm › Diğer Pencereler › TidySmith Structure: etkin C# dosyasının türleri ve üyeleri. İmleci izler, tıklama üyeye götürür, arama filtreler ve başka bir üyenin üzerine sürüklenen üye oraya taşınır — Order Members ile aynı güvenli taşıma. Yöntemler uzunluklarını ve döngüsel karmaşıklıklarını gösterir; seçenekler sayfasındaki sınırları aşınca turuncuya döner.

Küçük yardımcılar
CodeMaid'den özlenen komutlar, Düzen › TidySmith menüsünde ve düzenleyicinin bağlam menüsünde.
Switch File
Geçerli dosyaya ait dosyayı açar — işaretleme ve kodu, bir kaynak dosyası ve tasarımcısı, kod ve testleri — Çözüm Gezgini'nde aramaya gerek kalmadan.
| Nereden | Nereye (ve geri) |
|---|---|
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 — çözümdeki bir test projesinde de; …Test.cs ve ….Tests.cs de |
Menü hedefi adıyla gösterir (“Switch to OrderServiceTests.cs”) ve gidilecek yer yoksa devre dışıdır. Size ait bir tuşla en iyi sonucu verir — aşağıya bakın.
Sort Selected Lines
using'leri, enum üyelerini veya bir listenin öğelerini sıralar; virgüller listenin gerektirdiği yerde kalır. Yalnızca düz bir liste sıralanır — satır başına bir öğe, aynı girinti, boş satır yok, deyim yok — böylece yanlışlıkla seçilen bir yöntem veya dosyanın tamamı asla karıştırılmaz; durum çubuğu nedenini söyler.
Join Lines
Seçili satırları tek satırda veya imlecin bulunduğu satırı bir sonrakiyle birleştirir.
Find This File in Solution Explorer
Düzenleyicideki dosyayı Çözüm Gezgini'nde seçer.
Collapse ve Expand All Regions
Yalnızca #region bloklarını daraltır veya genişletir; yöntemler olduğu gibi kalır. Ctrl+M, Ctrl+O (yöntemleri de daraltır) ve Ctrl+M, Ctrl+L (her şeyi) komutlarından farkı budur.
Varsayılan olarak hiçbir kısayol alınmaz — Visual Studio'nun tuşları olduğu gibi kalır. Herhangi bir komutu Araçlar › Seçenekler › Ortam › Klavye bölümünde atayın: “Şunu içeren komutları göster” alanına TidySmith. yazın.
Ayarlar
Araçlar → Seçenekler → SmithWorks → TidySmith. Her seçeneğin bir açıklaması vardır.
| Seçenek | Varsayılan |
|---|---|
| Ampulde TidySmith eylemleri (Ctrl+.) | açık |
| Düzenlenebilecek yerlerde gri noktalar | açık |
| Üye sırası | TidySmith ön ayarı |
| Sıralamadan önce önizleme | açık |
| Bölgeler | bölge yok |
| Yorum satırı uzunluğu | 120 |
| Kaydederken düzenle | kapalı |
| Uzun yöntem (satır) · karmaşık yöntem | 60 · 10 |
| Marketplace'te değerlendirme iste | açık |
Ayarlar %LocalAppData%\TidySmith içinde saklanır; .editorconfig bir değer içeriyorsa o önceliklidir.

Depo başına: .editorconfig
Kuralları kodun yanına koyun, tüm ekip aynı sonucu alsın; .editorconfig içindeki bir değer seçenekler sayfasına göre önceliklidir (“.editorconfig dosyasındaki sırayı kullan” kapalı değilse).
[*.cs]
tidysmith_member_order = stylecop
tidysmith_regions = kind
tidysmith_region_min = 2
max_line_length = 120
| Anahtar | Değerler |
|---|---|
tidysmith_member_order | tidysmith, stylecop, codemaid veya sırasıyla gruplar: constants, fields, constructors, properties, methods… |
tidysmith_regions | none, kind, access, kind_access |
tidysmith_region_min | Bölge oluşturulacak en az üye sayısı: 2 |
max_line_length | Yorumların kaydırılacağı satır uzunluğu |
SSS
CodeMaid'den farkı nedir?
TidySmith eski kod modeli yerine Roslyn söz dizimi ağacı üzerinde çalışır; bu sayede #if, yorumlar ve öznitelikler ait oldukları yerde kalır; önizleme gösterir ve tek bir Geri Al ile geri alınır; sıra .editorconfig içinde tutulabilir; Visual Studio 2022 ve 2026'da x64 ve ARM64 üzerinde çalışır. Yalnızca C#'ı kapsar ve Visual Studio'nun artık kendi yaptığı şeyleri (kod temizleme, derleme ilerlemesi) dışarıda bırakır.
Bir sınıf neden sıralanmadı?
TidySmith, sıralamanın bir sınıfı bozabileceği veya karıştırabileceği durumlarda ona dokunmaz: söz dizimi hatası, küme ayracıyla aynı satırda bir üye, tek satırda iki üye. #if veya #region içindeki üyeler yalnızca kendi blokları içinde taşınır. Oluşturulan dosyalara asla dokunulmaz.
Bir değişikliği geri alabilir miyim?
Evet: her komut ve her kaydetme tek bir düzenlemedir, bu yüzden tek bir Ctrl+Z onu geri alır. Çözüm Gezgini'nde açık olmayan dosyalar diske yazılır — orada sürüm denetiminizi kullanın.
Sort Selected Lines neden hiçbir şey yapmadı?
Yalnızca düz bir listeyi sıralar; bu yüzden kod olan bir seçim — deyimler, bloklar, farklı girintili veya arasında boş satır olan satırlar — asla karıştırılmaz. Durum çubuğu bunu söyler.
Add Regions hiçbir şey yapmıyor.
Varsayılan kurallar bölge yok şeklindedir. Ayarların Bölgeler grubunda (komut onu açar) nasıl ayrılacaklarını seçin veya .editorconfig içinde tidysmith_regions değerini ayarlayın.
Peki VB, C++ veya XAML?
TidySmith C# içindir. İstenirse başka diller de gelebilir — Feedback deposunda bize bildirin.
TidySmith herhangi bir veri gönderiyor mu?
Hayır. Her şey Visual Studio içinde, sizin dosyalarınız üzerinde çalışır; hiçbir yere hiçbir şey gönderilmez — telemetri yok, istek yok.
Bir sorunu nereye bildirebilir veya bir özellik önerebilirim?
GitHub'daki Feedback deposunda bir issue açın — hatalar ve fikirler için formlar var (lütfen özel adları değiştirin). Marketplace'teki Q&A sekmesini de kullanabilirsiniz.
Değişiklik günlüğü
1.0.2
- Uzantı işinize yaradıktan sonra Marketplace'te bir kez değerlendirme isteği — Daha sonra ve Bir daha sorma seçenekleriyle; bir ayarla kapatılabilir.
1.0.1
- Order Members ve Structure penceresi, diğer SmithWorks uzantılarıyla ortak SmithWorks araç çubuğunda (Görünüm › Araç Çubukları › SmithWorks).
1.0.0
- İlk genel sürüm.
Sığan yorumlar
Format Comment, imlecin bulunduğu
//veya///yorumunu (ya da dosyadaki tüm yorumları) satır uzunluğunuza göre kaydırır —.editorconfigdosyasındakimax_line_lengthveya 120. Uzun satırlar bölünür, kısalar birleştirilir, uzun bir<summary>kendi satırlarını alır. Kod örnekleri (<code>), listeler, ayırıcı satırlar ve yorum satırına alınmış kod olduğu gibi kalır.