Bagikan melalui


File bersarang di Penjelajah Solusi

Penjelajah Solusi menumpuk file terkait untuk membantu mengaturnya dan membuatnya lebih mudah ditemukan. Misalnya, jika Anda menambahkan formulir Windows Forms ke proyek, file kode untuk formulir disarangkan di bawah formulir di Penjelajah Solusi. Dalam proyek .NET Core (dan .NET 5 dan yang lebih baru), penataan berkas dapat ditingkatkan lebih lanjut. Anda dapat memilih antara preset penyusunan file Nonaktif, Default, dan Web. Anda juga dapat menyesuaikan bagaimana file disarangkan atau membuat pengaturan khusus solusi dan khusus proyek.

Nota

Di Visual Studio 2022 versi 17.2 dan yang lebih lama, fitur ini hanya didukung untuk proyek ASP.NET Core. Pada versi 17.3 dan yang lebih baru, semua proyek yang menargetkan .NET mendukung penyusunan berkas bersarang.

Opsi pengelompokan file

Tombol untuk mengaktifkan/menonaktifkan penyusunan berkas

Opsi yang tersedia berkaitan dengan penumpukan file yang tidak dikustomisasi adalah:

  • Nonaktif: Opsi ini memberi Anda daftar file datar tanpa bersarang.

  • Default: Opsi ini memberi Anda perilaku penempatan berkas bawaan di Penjelajah Solusi. Jika tidak ada pengaturan untuk jenis proyek tertentu, maka tidak ada file dalam proyek yang ditumpuk. Jika ada pengaturan (misalnya, untuk proyek web), pengelompokan diterapkan.

  • Web: Opsi ini menerapkan perilaku pembuatan sarang file Web ke semua proyek dalam solusi saat ini. Ini memiliki banyak aturan, dan kami mendorong Anda untuk memeriksanya dan memberi tahu kami apa yang Anda pikirkan. Screenshot berikut menyoroti beberapa contoh perilaku pengelompokan file yang Anda dapatkan dengan memilih opsi ini:

    Pengelompokan File di Penjelajah Solusi

Sesuaikan penataan file

Jika Anda tidak menyukai apa yang Anda dapatkan dari pengaturan bawaan, Anda dapat membuat pengaturan penyusunan berkas kustom Anda sendiri untuk mengatur bagaimana Penjelajah Solusi mengelompokkan berkas. Anda dapat menambahkan pengaturan penempatan file kustom sebanyak yang diinginkan, dan Anda dapat beralih di antara pengaturan tersebut sesuai keinginan. Untuk membuat pengaturan kustom baru, Anda bisa memulai dengan file kosong, atau Anda bisa menggunakan pengaturan Web sebagai titik awal Anda:

Menambahkan aturan penataan file kustom

Sebaiknya gunakan pengaturan Web sebagai titik awal Anda karena lebih mudah untuk bekerja dengan sesuatu yang sudah berfungsi. Jika Anda menggunakan pengaturan Web sebagai titik awal, file .filenesting.json terlihat mirip dengan file berikut:

Gunakan aturan penyusunan file yang ada sebagai dasar untuk pengaturan kustom

Mari kita fokus pada node dependentFileProviders dan node anaknya. Setiap node anak adalah tipe aturan yang dapat digunakan Visual Studio untuk mengelompokkan file. Misalnya, memiliki nama file yang sama, tetapi ekstensi yang berbeda adalah salah satu jenis aturan. Aturan yang tersedia adalah:

  • extensionToExtension: Gunakan jenis aturan ini untuk menumpuk file.js di bawah file.ts

  • fileSuffixToExtension: Gunakan jenis aturan ini untuk menumpuk file-vsdoc.js di bawah file.js

  • addedExtension: Gunakan jenis aturan ini untuk menumpuk file.html.css di bawah file.html

  • pathSegment: Gunakan jenis aturan ini untuk menumpuk jquery.min.js di bawah jquery.js

  • allExtensions: Gunakan jenis aturan ini untuk menumpuk file.* di bawah file.js

  • fileToFile: Gunakan jenis aturan ini untuk menumpuk bower.json di bawah .bowerrc

Penyedia ExtensionToExtension

Penyedia ini memungkinkan Anda menentukan aturan penataan file menggunakan ekstensi file tertentu. Pertimbangkan contoh berikut:

contoh aturan extentionToExtension

contoh efek extentionToExtension

  • cart.js tertanam di bawah cart.ts karena aturan extensionToExtension pertama

  • cart.js tidak bersarang di bawah cart.tsx karena .ts muncul sebelum .tsx dalam aturan, dan hanya bisa ada satu induk.

  • light.css disarangkan di bawah light.sass karena aturan extensionToExtension kedua

  • home.html disarangkan di bawah home.md karena aturan extensionToExtension ketiga

Penyedia fileSuffixToExtension

Penyedia ini berfungsi seperti penyedia extensionToExtension , dengan satu-satunya perbedaan adalah bahwa aturan melihat akhiran file alih-alih hanya ekstensi. Pertimbangkan contoh berikut:

aturan contoh fileSuffixToExtension

efek contoh fileSuffixToExtension

  • portal-vsdoc.js disarangkan di bawah portal.js karena aturan fileSuffixToExtension

  • Setiap aspek lainnya dari aturan berfungsi dengan cara yang sama seperti extensionToExtension

Penyedia addedExtension

Penyedia ini menumpuk file dengan ekstensi tambahan di bawah file tanpa ekstensi tambahan. Ekstensi tambahan hanya dapat muncul di akhir nama file lengkap.

Pertimbangkan contoh berikut:

contoh aturan ekstensi ditambahkan

contoh efek ekstensi yang ditambahkan

  • file.html.css disarangkan di bawah file.html karena aturan addedExtension

Nota

Anda tidak menentukan ekstensi file apa pun untuk addedExtension aturan; ekstensi tersebut secara otomatis berlaku untuk semua ekstensi file. Artinya, file apa pun dengan nama dan ekstensi yang sama dengan file lain ditambah ekstensi tambahan di akhir disarangkan di bawah file lain. Anda tidak dapat membatasi efek penyedia ini hanya pada ekstensi file tertentu.

Penyedia pathSegment

Penyedia ini menumpuk file dengan ekstensi tambahan di bawah file tanpa ekstensi tambahan. Ekstensi tambahan hanya dapat muncul di tengah nama file lengkap.

Pertimbangkan contoh berikut:

contoh aturan pathSegment

contoh efek pathSegment

  • jquery.min.js disarangkan di bawah jquery.js karena aturan pathSegment

Nota

  • Jika Anda tidak menentukan ekstensi file spesifik untuk aturan pathSegment, itu berlaku untuk semua ekstensi file. Artinya, file apa pun dengan nama dan ekstensi yang sama dengan file lain ditambah ekstensi tambahan di tengah disarangkan di bawah file lain.

  • Anda dapat membatasi efek aturan ke pathSegment ekstensi file tertentu dengan menentukannya dengan cara berikut:

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

Penyedia allExtensions

Penyedia ini memungkinkan Anda menentukan aturan sarang file untuk file dengan ekstensi apa pun dan nama dasar yang sama. Pertimbangkan contoh berikut:

contoh aturan allExtensions

contoh efek AllExtensions

  • template.cs dan template.doc disarangkan di bawah template.tt karena aturan allExtensions .

Penyedia fileToFile

Penyedia ini memungkinkan Anda menentukan aturan penumpukan file berdasarkan seluruh nama file. Pertimbangkan contoh berikut:

Aturan contoh fileToFile

contoh efek fileToFile

  • .bowerrc disarangkan di bawah bower.json karena aturan fileToFile

Urutan penerapan aturan

Pengurutan penting di setiap bagian file pengaturan kustom Anda. Anda dapat mengubah urutan di mana aturan dijalankan dengan memindahkannya ke atas atau ke bawah di dalam node dependentFileProvider . Misalnya, jika Anda memiliki satu aturan yang membuat file.js induk file.ts dan aturan lain yang menjadikan file.coffee sebagai induk file.ts, urutan munculnya dalam file menentukan perilaku bersarang ketika ketiga file ada. Karena file.ts hanya dapat memiliki satu induk, aturan yang dijalankan pertama kali akan menang.

Pemesanan juga penting untuk bagian aturan itu sendiri, bukan hanya untuk file di dalam bagian. Segera setelah sepasang file dicocokkan dengan aturan berlapis file, aturan lain lebih jauh ke bawah dalam file diabaikan, dan pasangan file berikutnya diproses.

Tombol pengelompokan file

Anda dapat mengelola semua pengaturan, termasuk pengaturan kustom Anda sendiri, melalui tombol yang sama di Penjelajah Solusi:

Aktifkan aturan pengelompokan file kustom

Membuat pengaturan khusus proyek

Anda dapat membuat pengaturan khusus solusi dan khusus proyek melalui menu klik kanan (menu konteks) dari setiap solusi dan proyek:

Solusi dan aturan penataan khusus proyek

Pengaturan khusus solusi dan khusus proyek dikombinasikan dengan pengaturan Visual Studio aktif. Misalnya, Anda mungkin memiliki file pengaturan khusus proyek yang kosong, tetapi Penjelajah Solusi masih mengelompokkan file. Perilaku bersarang berasal dari pengaturan yang spesifik untuk solusi atau dari pengaturan Visual Studio. Urutan prioritas untuk menggabungkan pengaturan perapihan file adalah: Visual Studio > Solusi > Proyek.

Anda dapat memberi tahu Visual Studio untuk hanya menggunakan pengaturan khusus solusi atau khusus proyek, dengan mengatur simpul akar ke true. Visual Studio berhenti menggabungkan file pada tingkat tersebut dan tidak menggabungkannya dengan file yang lebih tinggi ke hierarki.

Pengaturan khusus solusi dan khusus proyek dapat diperiksa ke kontrol sumber, dan seluruh tim yang bekerja di basis kode dapat membagikannya.

Nonaktifkan aturan penyusunan berkas untuk proyek

Anda dapat menonaktifkan aturan penyusunan bersarang file global yang ada untuk solusi maupun proyek tertentu dengan menggunakan tindakan hapus untuk penyedia alih-alih menambah. Misalnya, jika Anda menambahkan kode pengaturan berikut ke proyek, semua aturan pathSegment yang mungkin ada secara global untuk proyek tertentu ini dinonaktifkan:

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