Repositori ini berisi lapisan sumber terbuka dari editor Microsoft Visual Studio. Ini termasuk semua definisi API publik dan beberapa implementasi editor tingkat rendah termasuk model teks, logika teks, dan subsistem editor primitif & operasi. Lapisan -lapisan ini dimaksudkan untuk penulis ekstensi untuk lebih terintegrasi dengan editor.
Dengan beberapa peringatan, lapisan dalam daya repositori ini baik Visual Studio di Windows dan Visual Studio untuk Editor Mac. Sementara kedua editor dibangun di atas basis kode ini, banyak aspek editor bukan open source, termasuk lapisan WPF dan kakao UI.
Visual Studio untuk Mac 8.1 memperkenalkan editor teks macOS asli baru yang dibangun di atas inti editor Visual Studio "nyata". Inti dari upaya berkelanjutan kami untuk membawa paritas dan manfaat kinerja bagi pengembang dengan memanfaatkan dan berbagi lebih banyak kode dengan Visual Studio di Windows, lapisan UI diangkut langsung dari WPF ke kakao modern.
Terutama, Editor Cocoa menggunakan teks inti Apple, grafik inti, dan teknologi animasi inti untuk melakukan tata letak mode yang dipertahankan dan rendering teks yang tinggi. Di antara peningkatan lain untuk dan integrasi dengan macOS, sekarang mendukung semua metode input macOS melalui protokol NSTextInputClient .
Saat ini, editor asli baru yang didasarkan pada Visual Studio dan Legacy Editor CO-Exist sementara kami mentransisi semua layanan bahasa jauh dari Editor Legacy. Visual Studio untuk Mac mendukung C# dan XAML (dalam pratinjau 8.2) sejauh ini, tetapi akan terus memungkinkan dukungan untuk bahasa lain melalui rilis yang akan datang. Silakan merujuk ke Visual Studio untuk Mac Roadmap untuk detail tentang apa yang selanjutnya.
Diagram ini harus membantu memvisualisasikan pelapisan Visual Studio untuk Mac dibandingkan dengan Visual Studio sementara editor Legacy masih ada untuk beberapa bahasa.
Untuk memfasilitasi porting editor WPF dari Windows ke MacOS, beberapa perubahan pecah telah dilakukan pada beberapa antarmuka tingkat bawah. Rencana yang sedang berlangsung adalah merekonsiliasi perbedaan -perbedaan ini sehingga tidak ada perbedaan API apa pun antara editor WPF dan Cocoa.
Namun, untuk saat ini, ada dua set paket Nuget terpisah untuk menargetkan Visual Studio dan Visual Studio untuk Mac, tersedia di masing -masing bagian di bawah ini.
Sementara sebagian besar antarmuka terkait non-UI identik di seluruh implementasi WPF dan kakao dari editor, banyak yang baru namun akrab: ketika menargetkan cocoa, antarmuka ICocoa* umumnya dapat ditemukan sebagai pengganti antarmuka IWpf* analog.
Sumber daya berikut harus membantu penulis ekstensi menjadi terbiasa dengan API dan kemampuan editor, dan relevan dengan Visual Studio dan Visual Studio untuk Mac.
Paket Nuget akan datang, tetapi semua rakitan tersedia untuk ekstensi untuk Visual Studio untuk Mac saat menggunakan Add-In Maker. Rakitan juga dapat diproduksi langsung dari repositori ini (lihat Membangun API Editor di bawah).
Lihat Extending Visual Studio untuk dokumentasi Mac untuk detailnya.
Di Windows, Visual Studio Editor API tersedia melalui Nuget dan juga diinstal dengan beban kerja pengembangan Extension Visual Studio.
| Paket Nuget | Versi saat ini |
|---|---|
| Microsoft.visualstudio.coreutility | |
| Microsoft.visualstudio.text.data | |
| Microsoft.visualstudio.text.logic | |
| Microsoft.visualstudio.text.ui |
Meskipun repositori ini sebagian besar dimaksudkan untuk referensi, ia dapat menghasilkan build yang layak dari tingkat editor yang lebih rendah. Baik terbuka VSEditorCore.sln di Visual Studio atau Visual Studio untuk Mac dan membangun dari IDE, atau membangun di baris perintah.
Visual Studio 2019 atau Visual Studio untuk Mac 8.0 atau yang lebih baru diperlukan.
Rakitan akan tersedia di Direktori bin/ di akar repositori.
$ msbuild /restore Paket NUGET juga dapat diproduksi secara lokal dan akan tersedia di _artifacts/nuget/ Direktori pada akar repositori.
$ msbuild /t:PackProyek ini telah mengadopsi kode perilaku open source Microsoft. Untuk informasi lebih lanjut, lihat FAQ Kode Perilaku atau hubungi [email protected] dengan pertanyaan atau komentar tambahan.
Kami umumnya tidak menerima permintaan tarik untuk repositori ini untuk kode editor inti saat ini. Silakan mengirimkan permintaan tarik untuk konten lain di repositori ini, termasuk sampel baru.