Vscode-ng-language-service: Peta Jalan Layanan Bahasa Sudut

Dibuat pada 30 Mei 2019  ·  20Komentar  ·  Sumber: angular/vscode-ng-language-service

Sudah lebih dari setahun sejak @chuckjaz , penulis asli layanan bahasa, meninggalkan tim. Sejak itu, tim telah menyebar sangat tipis mengerjakan berbagai tujuan ambisius, antara lain kompiler Ivy dan integrasi Bazel dengan CLI.
Sekarang setelah versi 8 dirilis, kami ingin memberikan beberapa pembaruan dan peta jalan untuk layanan bahasa ke depan.

  1. Stabilitas / kinerja ️ selesai!
    Ini adalah prioritas utama kami untuk memastikan layanan bahasa tidak mengalami kemunduran dalam kinerja. Kami akan terus menangani masalah stabilitas, jika ada.

  2. Transisi ke plugin tsserver ️ selesai!
    Selama beberapa bulan mendatang, kami akan mengerjakan sisa pekerjaan yang diperlukan untuk melakukan transisi ke model plugin tsserver. Manfaat utama dari plugin tsserver adalah kinerja (tidak ada kompilasi TS duplikat) dan tidak ada ketidakcocokan versi (baik Angular dan TS). Sebagian besar pekerjaan adalah memastikan templat HTML eksternal didukung dengan baik.
    Pembaruan 11/11/2019: Meskipun kami akan terus mendukung mode plugin, kami memutuskan untuk tetap mempertahankan ekstensi mandiri. Ekstensi telah sepenuhnya diubah untuk mengatasi masalah kinerja, dan banyak fitur telah ditambahkan. Versi baru diterbitkan ke pasar bersamaan dengan rilis Angular versi 9.

  3. Perbaikan bug / peningkatan ️ selesai!
    Setelah plugin selesai, kami akan mengatasi beberapa bug lama terkait dengan pemeriksaan jenis template dan beberapa peningkatan fitur yang banyak diminta.

  4. Beralih layanan bahasa ke kompiler Ivy ️ selesai!
    Karena model kompilasi di bawah Ivy sangat berbeda dengan di bawah View Engine, backend layanan bahasa harus diubah untuk memastikan kompatibilitas di masa mendatang.

Terima kasih atas semua umpan baliknya, dan beri tahu kami jika Anda ingin berkontribusi!

Komentar yang paling membantu

Pembaruan terbaru: Layanan bahasa Ivy akan tersedia untuk pengujian beta di versi 11. Rilis saat ini dijadwalkan pada 11 November 2020. Kami bertujuan untuk meningkatkan kinerja dan menyediakan rangkaian fitur yang lebih luas dalam iterasi yang benar-benar baru dari layanan bahasa ini. Di antara fitur-fitur baru tersebut adalah:

  1. Pengetikan yang lebih baik dalam template Angular
  2. Hasilkan diagnostik yang sama dengan kompiler
  3. Hargai angularCompilerOptions

Kami tahu ini sudah lama datang, tapi terima kasih atas dukungan dan kesabarannya!

Semua 20 komentar

Nah hanya untuk menautkannya di sini saya memiliki dua masalah / bug kinerja yang dijelaskan dengan baik:

Sedangkan untuk yang pertama ada solusi untuk tidak menutup paling tidak editor yang terakhir terbuka, untuk yang kedua hanya menonaktifkan plugin. Dari pengujian intensif saya dengan plugin, saya dapat mengatakan jika keduanya diperbaiki, plugin ini hampir sempurna.

Versi baru ekstensi Angular diterbitkan di GitHub sebagai pratinjau awal, silakan lihat https://github.com/angular/vscode-ng-language-service/releases/tag/v0.900.0-next.0.

Jika Anda mencobanya, beri tahu kami jika ada masalah / bug. Terima kasih!

@kyliau : Saya ingin mencoba mengintegrasikan kecerdasan Angular yang lebih baru di Eclipse Wild Web Developer. Apakah ekstensi yang Anda tautkan di komentar sebelumnya berisi server bahasa (seperti dalam proses yang berbicara LSP)? Jika ya, apakah ini diharapkan berfungsi pada file TS dan HTML? Dan jika ya, apa cara yang disarankan untuk memulai server bahasa ini?

@kyliau Saya mengikuti instruksi untuk menginstal v0.900.0-next.0, namun tidak ada saran pelengkapan otomatis untuk apa pun (misalnya pemilih komponen, properti, acara, dll).

Dengan senang hati saya umumkan bahwa versi RC telah dirilis, dan dalam beberapa minggu ekstensi baru akan dipublikasikan ke vscode marketplace .
Sementara itu, jika Anda ingin mencobanya, silakan unduh biner dari halaman Rilis .
Kami saat ini berfokus pada item pekerjaan (3), di mana kami akan memperbaiki beberapa bug lama.

Ekstensi baru sekarang aktif. Silakan unduh dari https://marketplace.visualstudio.com/items?itemName=Angular.ng-template

Saya punya pertanyaan tentang poin 4 "Ganti layanan bahasa ke kompiler Ivy [sedang berlangsung]"

Kami memiliki perpustakaan internal kami sendiri, yang hanya digunakan dalam aplikasi yang kami kembangkan sendiri. Jadi kami memigrasikannya ke Ivy, karena semua basis kode kami dimigrasikan sekaligus. Tapi sekarang vscode tidak mengenali Directive dan Components dari library lagi.

Ini berarti cara terbaik untuk saat ini adalah, kami mengompilasi pustaka dengan View Engine hingga layanan bahasa mendukung Ivy sepenuhnya. Apakah ini benar? Jika demikian, apakah ada peta jalan kapan dukungan akan diberikan untuk layanan bahasa?

Aplikasi yang menggunakan compiler ivy tidak ada masalah. Komponen dari aplikasi diselesaikan dengan benar.

@furti Seperti yang telah Anda catat, ya, untuk saat ini perpustakaan dan aplikasi harus dikompilasi dengan View Engine agar layanan bahasa dapat mengambil metadata.json yang sesuai yang merupakan dasar dari layanan bahasa saat ini.
@xiaoxiangmoe Saya bekerja dengan tim kompiler untuk sepenuhnya mengintegrasikan Ivy ke dalam layanan bahasa. Saat ini, kami menargetkan rilis beta dalam versi 10, yang akan terjadi sekitar akhir Juni / awal Juli, kecuali ada kejutan. Perencanaan kami agak terganggu karena situasi WFH yang sedang berlangsung, tetapi kami akan mencoba yang terbaik untuk tetap pada peta jalan asli.

Senang melihat bahwa angular telah merilis v10
Apakah ada pembaruan untuk "Ganti layanan bahasa ke kompiler Ivy"?

@xiaoxiangmoe Garis waktu untuk layanan bahasa Ivy telah tergelincir karena beberapa reorganisasi internal.
Pekerjaan telah dimulai, dan kami telah merekrut beberapa anggota untuk meningkatkan momentum pada proyek ini.
Anda dapat melacak kemajuan seluruh proyek di sini .
Kami berencana untuk merilis Ivy LS bersama dengan LS yang ada, sehingga pengguna yang ingin mencoba "pratinjau awal" dapat melakukannya dari pengaturan editor mereka. Harap tetap disini!

Saya pikir kinerja belum benar-benar selesai. Ekstensi ini telah menjadi sumber lonjakan CPU tinggi terbesar bagi saya dan banyak orang lain yang saya kenal sejak lama dan akhir-akhir ini membuat penggemar di macOS tergila-gila.

Ya saya setuju dengan @DenysVuika. Saya memiliki masalah dengan plugin ini selama berbulan-bulan. Saya meninggalkan kemarin dan menonaktifkannya. Setelah saya memulai vscode dan ng web server, CPU akan meroket di beberapa titik dan tetap di sana sampai saya me-restart vscode. Intellisense akan berhenti bekerja beberapa kali sehari. Saya terpaksa me-restart vscode setiap hari, beberapa kali. Sejak saya menonaktifkannya, semuanya kembali normal. Saya juga menggunakan macOS. Berikut adalah beberapa info kontekstual:

CLI sudut: 10.0.1
Node: 12.13.0
OS: darwin x64

Sudut: 10.0.2
... animasi, umum, kompiler, kompiler-cli, inti, formulir
... platform-browser, platform-browser-dinamis, router
Ruang Kerja Ivy: Ya

Versi Paket

@angular-devkit/arsitek 0.1000.1
@angular-devkit/build-angular 0.1000.1
@angular-devkit/build-optimizer 0.1000.1
@angular-devkit/build-webpack 0.1000.1
@angular-devkit/core 10.0.1
@angular-devkit/schematics 10.0.1
@sudut/cdk 10.0.1
@sudut/cli 10.0.1
@sudut/bahan 10.0.1
@ngtools/webpack 10.0.1
@skema/sudut 10.0.1
@skema/perbarui 0.1000.1
rxjs 6.6.0
naskah 3.9.6
paket web 4.43.0

Dalam proyek Angular 10 saya saat ini, menggunakan Versi: 1.48.0-insider, saya tidak lagi memiliki Angular Intellisense di templat HTML saya atau pemeriksaan kesalahan (seperti jika saya terikat ke variabel yang tidak ada).

Pembaruan terbaru: Layanan bahasa Ivy akan tersedia untuk pengujian beta di versi 11. Rilis saat ini dijadwalkan pada 11 November 2020. Kami bertujuan untuk meningkatkan kinerja dan menyediakan rangkaian fitur yang lebih luas dalam iterasi yang benar-benar baru dari layanan bahasa ini. Di antara fitur-fitur baru tersebut adalah:

  1. Pengetikan yang lebih baik dalam template Angular
  2. Hasilkan diagnostik yang sama dengan kompiler
  3. Hargai angularCompilerOptions

Kami tahu ini sudah lama datang, tapi terima kasih atas dukungan dan kesabarannya!

@kyliau Apakah ini akan dirilis dengan angular v11.0.0-rc.2 atau v11.0.0-rc.3?

@kyliau Apakah ini akan dirilis dengan angular v11.0.0-rc.2 atau v11.0.0-rc.3?

Layanan bahasa https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1100.0-rc.0 dan menginstal .vsix file secara manual.

Karena ini adalah pencapaian besar untuk proyek ini, kami ingin memastikan bahwa ekstensi telah diuji dengan baik dan fitur lengkap sebelum dirilis sebagai stabil. Kami telah membuat kemajuan luar biasa dan bersemangat untuk berbagi pekerjaan dengan komunitas, tetapi kami menghargai sedikit lebih banyak kesabaran saat kami menyelesaikan masalah.

@kyliau Kapan kami dapat mengharapkan bug dibuka untuk layanan Bahasa Ivy untuk diselidiki?
Dibuka https://github.com/angular/vscode-ng-language-service/issues/936

@kyliau Apakah ini akan dirilis dengan angular v11.0.0-rc.2 atau v11.0.0-rc.3?

Layanan bahasa https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1100.0-rc.0 dan menginstal .vsix file secara manual.

Karena ini adalah pencapaian besar untuk proyek ini, kami ingin memastikan bahwa ekstensi telah diuji dengan baik dan fitur lengkap sebelum dirilis sebagai stabil. Kami telah membuat kemajuan luar biasa dan bersemangat untuk berbagi pekerjaan dengan komunitas, tetapi kami menghargai sedikit lebih banyak kesabaran saat kami menyelesaikan masalah.

Bagaimana cara yang tepat untuk mengaktifkan Ivy Language Service? Saya telah menyetel pengaturan eksperimental ini ke true, tetapi tidak dapat menjalankan ngcc. Saya sudah mencoba menjalankannya secara manual sebelumnya, tetapi tidak berhasil. Apakah ada langkah jelas yang tidak saya ambil?

Saya harap Anda tidak mengabaikan komentar ini seperti permintaan dukungan pengguna lainnya. Aku tahu kamu belum siap untuk itu. Saya hanya ingin tahu cara yang tepat untuk menguji ini.

@Arkthur Ini adalah angularCompilerOptions saya:

{
    "angularCompilerOptions": {
        "fullTemplateTypeCheck": true,
        "strictInjectionParameters": true,
        "strictInputAccessModifiers": true,
        "strictTemplates": true
    }
}

Juga, Jika Anda menggunakan vscode-ng-language-service v0.1100.1 atau v0.1100.3, silakan instal ulang v0.1100.0. Tampaknya vscode-ng-language-service v0.1100.1 memiliki bug serius dan layanan bahasa ivy tidak akan berfungsi.

Sudah lama dibuat, tetapi hari ini layanan bahasa asli Ivy akhirnya tersedia untuk dicoba di v11.1.0!
LS asli Ivy memperbaiki banyak masalah mendasar yang tidak mungkin diperbaiki di View Engine:

  • kinerja kompilasi tambahan,
  • pemeriksaan tipe yang lebih kuat,
  • diagnostik yang sama dengan kompiler, dll,

Ini juga memperkenalkan beberapa fitur baru seperti menemukan referensi untuk variabel dalam template.

Silakan unduh dari pasar vscode dan beri tahu kami jika Anda memiliki umpan balik.
Petunjuk untuk mengaktifkan Ivy-native LS dapat ditemukan di catatan rilis .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat