Aracılığıyla paylaş


Çözüm Gezgini'nde dosyaların iç içe yerleştirilmesi

Çözüm Gezgini , ilgili dosyaları düzenlemeye yardımcı olmak ve bulmalarını kolaylaştırmak için iç içe yerleştirilmiştir. Örneğin, projeye bir Windows Forms formu eklerseniz, formun kod dosyası Çözüm Gezgini'ndeki formun altında iç içe yerleştirilmiştir. .NET Core (ve .NET 5 ve üzeri) projelerinde, dosya iç içe yerleştirme bir adım ileriye gidebilir. Arasında seçim yapabilirsiniz: dosya iç içe yerleştirme ön ayarları Kapalı, Varsayılan ve Web. Ayrıca dosyaların iç içe nasıl yerleştirileceğine özelleştirebilir veya çözüme özgü ve projeye özgü ayarlar oluşturabilirsiniz.

Uyarı

Visual Studio 2022 sürüm 17.2 ve önceki sürümlerinde bu özellik yalnızca ASP.NET Core projeleri için destekleniyordu. Sürüm 17.3 ve sonraki sürümlerde, .NET'i hedefleyen tüm projeler dosya iç içe yerleştirmeyi destekler.

Dosya iç içe yerleştirme seçenekleri

Dosya iç içe yerleştirmeyi açma/kapatma düğmesi

Özelleştirilmemiş dosya iç içe yerleştirme için kullanılabilir seçenekler şunlardır:

  • Kapalı: Bu seçenek, herhangi bir iç içe yerleştirme olmadan size düz bir dosya listesi sağlar.

  • Varsayılan: Bu seçenek, Çözüm Gezgini'nde varsayılan dosya iç içe yerleştirme davranışını sağlar. Belirli bir proje türü için hiçbir ayar yoksa, projedeki hiçbir dosya iç içe yerleştirilmemiş demektir. Ayarlar varsa (örneğin, bir web projesi için), iç içe geçirme uygulanır.

  • Web: Bu seçenek Geçerli çözümdeki tüm projelere Web dosyası iç içe yerleştirme davranışını uygular. Çok sayıda kuralı vardır ve bunu kontrol edip bize ne düşündüğünüzü söylemenizi öneririz. Aşağıdaki ekran görüntüsünde, bu seçenekle elde ettiğiniz dosya iç içe geçirme davranışına yalnızca birkaç örnek vurgulanır:

    Çözüm Gezgini'nde dosya iç içe yerleştirme

Dosya iç içe yerleştirmeyi özelleştirme

Kullanıma sunulanları beğenmezseniz, Çözüm Gezgini'ne dosyaları nasıl iç içe yerleştirebileceğinizi belirten kendi özel dosya iç içe yerleştirme ayarlarınızı oluşturabilirsiniz. İstediğiniz kadar özel dosya iç içe yerleştirme ayarı ekleyebilir ve bunlar arasında istediğiniz gibi geçiş yapabilirsiniz. Yeni bir özel ayar oluşturmak için boş bir dosyayla başlayabilir veya başlangıç noktanız olarak Web ayarlarını kullanabilirsiniz:

Özel dosya iç içe yerleştirme kuralları ekleme

Zaten çalışan bir şeyle çalışmak daha kolay olduğundan, başlangıç noktanız olarak Web ayarlarını kullanmanızı öneririz. Başlangıç noktanız olarak Web ayarlarını kullanırsanız ,.filenesting.json dosyası aşağıdaki dosyaya benzer:

Özel ayarlar için temel olarak mevcut dosya iç içe yerleştirme kurallarını kullanma

DependentFileProviders düğümüne ve alt düğümlerine odaklanalım. Her alt düğüm, Visual Studio'nun dosyaları iç içe yerleştirmede kullanabileceği bir kural türüdür. Örneğin, aynı dosya adına sahip olup farklı bir uzantıya sahip olmak bir kural türüdür. Kullanılabilir kurallar şunlardır:

  • extensionToExtension: file.js öğesini file.ts dosyasının altına yerleştirmek için bu tür bir kural kullanın.

  • fileSuffixToExtension: file.js altında file-vsdoc.js iç içe yerleştirmek için bu tür bir kural kullanın

  • addedExtension: file.html.css dosyasını file.html altında iç içe yerleştirmek için bu tür bir kural kullanın

  • pathSegment: jquery.min.jsjquery.js altına yerleştirmek için bu tür bir kuralı kullanın

  • allExtensions: dosyasını * file.js altında iç içe yerleştirmek için bu tür bir kuralı kullanın

  • fileToFile: bower.json'yı yerleştirmek için bu tür bir kural kullanın: .bowerrc

extensionToExtension sağlayıcısı

Bu sağlayıcı, belirli dosya uzantılarını kullanarak dosya iç içe yerleştirme kuralları tanımlamanızı sağlar. Aşağıdaki örneği göz önünde bulundurun:

extentionToExtension örnek kuralları

extentionToExtension örnek etkisi

  • cart.js, ilk extensionToExtension kuralı nedeniyle cart.ts altında iç içe geçmiş durumda.

  • cart.jscart.tsx'in içine yerleştirilmemiştir, çünkü kurallarda .ts önce gelir ve yalnızca bir üst öğe olabilir.

  • light.css ikinci extensionToExtension kuralı nedeniyle light.sass altında iç içe yerleştirilmiştir

  • home.html, üçüncü extensionToExtension kuralı nedeniyle home.md altında yerleştirilmiştir.

fileSuffixToExtension sağlayıcısı

Bu sağlayıcı aynı extensionToExtension sağlayıcısı gibi çalışır ve tek fark kuralın yalnızca uzantı yerine dosyanın son ekine bakmasıdır. Aşağıdaki örneği göz önünde bulundurun:

fileSuffixToExtension örnek kuralları

fileSuffixToExtension örnek etkisi

  • portal-vsdoc.js, fileSuffixToExtension kuralı nedeniyle portal.js altında iç içe yerleştirilmiştir

  • kuralın diğer her yönü extensionToExtension ile aynı şekilde çalışır

addedExtension sağlayıcısı

Bu sağlayıcı, ek uzantılı dosyaları, ek uzantısız dosyaların altına yerleştirir. Ek uzantı yalnızca tam dosya adının sonunda görünebilir.

Aşağıdaki örneği göz önünde bulundurun:

addedExtension örnek kuralları

addedExtension örnek etkisi

  • file.html.css, addedExtension kuralı nedeniyle file.html altında iç içe yerleştirilmiştir

Uyarı

Kural için addedExtension herhangi bir dosya uzantısı belirtmezseniz, tüm dosya uzantılarına otomatik olarak uygulanır. Yani, başka bir dosyayla aynı ada ve uzantıya sahip olan ve sonuna ek bir uzantı eklenen herhangi bir dosya, diğer dosyanın altında yer alır. Bu sağlayıcının etkisini yalnızca belirli dosya uzantılarıyla sınırlayamazsınız.

pathSegment sağlayıcısı

Bu sağlayıcı, ek uzantılı dosyaları, ek uzantısı olmayan bir dosyanın altında iç içe yerleştirir. Ek uzantı yalnızca tam dosya adının ortasında görünebilir.

Aşağıdaki örneği göz önünde bulundurun:

pathSegment örnek kuralları

pathSegment örnek etkisi

  • jquery.min.jspathSegment kuralı nedeniyle jquery.js altında iç içe yerleştirilmiştir

Uyarı

  • Kural için pathSegment belirli bir dosya uzantısı belirtmezseniz, tüm dosya uzantıları için geçerlidir. Başka bir deyişle, başka bir dosyayla aynı ada ve uzantıya sahip olan ve ortada ek bir uzantı bulunan tüm dosyalar diğer dosyanın altına iç içe yerleştirilmiştir.

  • Kuralın etkisini pathSegment , aşağıdaki şekilde belirterek belirli dosya uzantılarıyla sınırlayabilirsiniz:

    "pathSegment": {
        "add": {
          ".*": [
            ".js",
            ".css",
            ".html",
            ".htm"
          ]
        }
    }
    

allExtensions sağlayıcısı

Bu sağlayıcı, herhangi bir uzantıya ancak aynı temel dosya adına sahip dosyalar için dosya iç içe yerleştirme kuralları tanımlamanızı sağlar. Aşağıdaki örneği göz önünde bulundurun:

allExtensions örnek kuralları

allExtensions örnek etkisi

  • template.cs ve template.doc, allExtensions kuralı nedeniyle template.tt altında iç içe yerleştirilmiştir.

fileToFile sağlayıcısı

Bu sağlayıcı, dosya adlarının tamamına göre dosya iç içe yerleştirme kuralları tanımlamanızı sağlar. Aşağıdaki örneği göz önünde bulundurun:

fileToFile örnek kuralları

fileToFile örnek etkisi

  • .bowerrc, fileToFile kuralı nedeniyle bower.json altında iç içe yerleştirilmiş

Kural sırası

Sıralama, özel ayarlar dosyanızın her bölümünde önemlidir. Kuralların yürütülme sırasını, dependentFileProvider düğümünün içinde yukarı veya aşağı taşıyarak değiştirebilirsiniz. Örneğin, file.jsfile.ts dosyasının üst öğesi yapan bir kuralınız ve file.coffee'yi file.ts'nin üst öğesi yapan başka bir kuralınız varsa, üç dosyanın da mevcut olduğu durumlarda dosyada görünme sırası, iç içe geçiş davranışını belirler. file.ts yalnızca bir üst öğeye sahip olabileceğinden, ilk olarak yürütülen kural kazanır.

Sıralama, yalnızca bir bölüm içindeki dosyalar için değil, kural bölümlerinin kendileri için de önemlidir. Bir dosya çifti bir dosya iç içe geçme kuralıyla eşleştirildiğinde, dosyadaki diğer kurallar göz ardı edilir ve bir sonraki dosya çifti işlenir.

Dosya iç içe yerleştirme düğmesi

Kendi özel ayarlarınız da dahil olmak üzere tüm ayarları Çözüm Gezgini'ndeki aynı düğme aracılığıyla yönetebilirsiniz:

Özel dosya iç içe yerleştirme kurallarını etkinleştirme

Projeye özgü ayarlar oluşturma

Her çözümün ve projenin sağ tıklama menüsü (bağlam menüsü) aracılığıyla çözüme özgü ve projeye özgü ayarlar oluşturabilirsiniz:

Çözüme ve projeye özgü iç içe yerleştirme kuralları

Çözüme özgü ve projeye özgü ayarlar, etkin Visual Studio ayarlarıyla birleştirilir. Örneğin, projeye özgü boş bir ayarlar dosyanız olabilir, ancak Çözüm Gezgini dosyaları iç içe yerleştirmeye devam etmektedir. İç içe geçme davranışı, çözüme özgü ayarlardan veya Visual Studio ayarlarından kaynaklanıyor. Dosya iç içe yerleştirme ayarlarını birleştirme önceliği: Visual Studio > Çözüm > Projesi.

Kök düğümü true olarak ayarlayarak Visual Studio'ya yalnızca çözüme veya projeye özgü ayarları kullanmasını söyleyebilirsiniz. Visual Studio, dosyaları bu düzeyde birleştirmeyi durdurur ve hiyerarşinin üst kısmındaki dosyalarla birleştirmez.

Çözüme özgü ve projeye özgü ayarlar kaynak denetiminde denetlenebilir ve kod tabanında çalışan tüm ekip bunları paylaşabilir.

Proje için dosya iç içe yerleştirme kurallarını devre dışı bırakma

Ekleme yerine sağlayıcının kaldırma eylemini kullanarak belirli çözümler veya projeler için mevcut genel dosya iç içe yerleştirme kurallarını devre dışı bırakabilirsiniz. Örneğin, bir projeye aşağıdaki ayarlar kodunu eklerseniz, bu proje için genel olarak mevcut olabilecek tüm pathSegment kuralları devre dışı bırakılır:

"dependentFileProviders": {
  "remove": {
    "pathSegment": {}
  }
}