Server Bahasa VSCode - Node.js
Repositori ini berisi kode untuk modul npm berikut:
- vscode-lingualclient : modul npm untuk berbicara dengan server bahasa VSCode dari ekstensi VSCode:
- vscode-bahasaserver : modul npm untuk mengimplementasikan server bahasa VSCode menggunakan Node.js sebagai runtime:
- vscode-lingualserver-textdocument : modul npm untuk mengimplementasikan dokumen teks yang dapat digunakan di server LSP menggunakan Node.js sebagai runtime:
- vscode-lingualserver-protocol : definisi protokol server bahasa sebenarnya di TypeScript:
- vscode-lingualserver-types : tipe data yang digunakan oleh klien dan server server bahasa:
- vscode-jsonrpc : protokol pesan yang mendasari untuk berkomunikasi antara klien dan server:
Semua modul npm dibuat menggunakan satu Azure Pipeline. Statusnya adalah:
Klik di sini untuk dokumen mendetail tentang cara menggunakan modul npm ini untuk mengimplementasikan server bahasa untuk VSCode.
Berkontribusi
Setelah mengkloning repositori, jalankan npm install
untuk menginstal dependensi dan npm run symlink
untuk mengarahkan paket-paket dalam repositori ini satu sama lain.
Sejarah
Berikutnya (10.0.0-berikutnya.* Klien dan 10.0.0-berikutnya.* Server)
- Ditingkatkan ke perpustakaan, kompiler, dan aturan ekspor package.json yang lebih baru:
- Kompiler ditingkatkan ke
5.5.x
. - Lib sekarang bergantung pada NodeJS
20.9.0
dan es2022
. Lihat juga pemetaan target simpul TypeScript. -
vscode-jsonrpc
, vscode-languageserver-protocol
, vscode-languageclient
dan vscode-languageserver
sekarang menggunakan properti exports
alih-alih memiliki properti main
dan typings
. Ini mungkin memerlukan penerapan dalam file tsconfig.json di sekitar module
dan moduleResolution
. Perpustakaan LSP saat ini menggunakan node16
untuk kedua nilai.
- menambahkan usulan CodeActionKind.RefactorMove
- dukungan cuplikan dalam pengeditan Workspace
- dukungan untuk mengontrol paralelisme permintaan pengiriman dan pemberitahuan. Ini adalah perubahan yang dapat menyebabkan gangguan karena memungkinkan penangan notifikasi mengembalikan janji untuk mengontrolnya.
- membuat implementasi browser klien konsisten dengan implementasi node dalam hal argumen. Ini adalah perubahan yang dapat menyebabkan gangguan karena mengurutkan ulang deklarasi parameter.
- Menambahkan
CancellationToken
ke middleware dokumen acara agar konsisten dengan middleware lainnya. Ini adalah perubahan yang dapat menyebabkan gangguan karena menambahkan parameter yang diperlukan.
3.17.5 Protokol, 9.0.1 Klien dan 9.0.1 Server
Protokol 3.17.4, Klien 8.2.0 JSON-RPC 9.0.0 dan Server 9.0.0
- menambahkan usulan permintaan penyelesaian inline.
- menambahkan permintaan rentang pemformatan yang diusulkan.
- menambahkan permintaan penyegaran yang diusulkan untuk rentang lipat. Ini mengubah bentuk fitur rentang lipat karena kita perlu mengekspos pemancar peristiwa. Perubahannya rusak. Untuk sampai ke penyedia yang perlu Anda lakukan sekarang
client . getFeature ( lsclient . FoldingRangeRequest . method ) . getProvider ( document ) ?. provider ;
- berbagai perbaikan bug
Protokol 3.17.4-next.0, JSON-RPC 8.2.0-next.0, Klien 8.2.0-next.0, dan Server 8.2.0-next.0.
- dukungan middleware untuk pemberitahuan dan permintaan umum serta kemampuan mendaftar dan membatalkan pendaftaran.
- berbagai perbaikan bug.
3.17.3 Protokol, 8.1.0 JSON-RPC, 8.1.0 Klien dan 8.1.0 Server.
- dukungan untuk penangan pesan khusus
- berbagai perbaikan bug. Yang perlu diperhatikan adalah perbaikan seputar masalah pemesanan permintaan dengan sinkronisasi dokumen penuh.
3.17.2 Protokol, 8.0.2 JSON-RPC, 8.0.2 Klien dan 8.0.2 Server.
- membuat klien lebih kuat terhadap restart yang tidak diinginkan
- menambahkan metode LanguageClient#dispose untuk membuang klien sepenuhnya
- berbagai perbaikan bug.
Protokol 3.17.0, 8.0.0 JSON-RPC, Klien 8.0.0 dan Server 8.0.0.
Perubahan khusus perpustakaan adalah:
- pembersihan metode
start
dan stop
klien. Kedua metode sekarang mengembalikan janji karena metode ini tidak sinkron. Ini adalah perubahan besar sejak awal mengembalikan barang sekali pakai sebelumnya. Ekstensi sekarang harus mengimplementasikan fungsi penonaktifan di file utama ekstensinya dan mengembalikan janji stop
dari panggilan penonaktifan dengan benar. Akibatnya onReady()
dihapus karena ekstensi dapat menunggu panggilan start()
sekarang. Kode lama seperti ini
const client : LanguageClient = ... ;
client . start ( ) ;
await client . onReady ( ) ;
seharusnya menjadi:
const client : LanguageClient = ... ;
await client . start ( ) ;
- pendaftaran penangan pemberitahuan dan permintaan sekarang dapat dilakukan sebelum klien dimulai. Ini memastikan tidak ada pesan dari server yang terlewat.
- jika ekstensi mengirimkan pemberitahuan atau permintaan sebelum klien memulai, klien akan memulai secara otomatis.
- semua metode
sendNotification
sekarang memberikan janji. Mengembalikan janji diperlukan karena penulisan pesan yang sebenarnya ke transportasi yang mendasarinya tidak sinkron dan klien misalnya tidak dapat menentukan apakah pemberitahuan telah diserahkan ke transportasi. Ini merupakan perubahan besar dalam arti bahwa hal ini dapat mengakibatkan janji mengambang dan mungkin ditandai oleh linter. - semua pendaftaran penangan sekarang mengembalikan Sekali Pakai untuk memungkinkan pembatalan pendaftaran penangan.
- perilaku
handleFailedRequest
telah berubah. Alih-alih mengembalikan nilai default ketika pengecualian diterima dari server, metode ini sekarang memunculkan kembali kesalahan. Hal ini memastikan bahwa perilaku default VS Code pada kesalahan digunakan. Metode ini juga menangani RequestCancelled
dan ServerCancelled
dengan cara berikut:- jika menerima
ServerCancelled
dan klien tidak membatalkan permintaan, lemparkan CancellationError untuk meminta klien menjalankan kembali permintaan tersebut. - jika menerima
RequestCancelled
maka biasanya klien seharusnya membatalkan permintaan dan kode akan mengembalikan nilai default (sesuai dengan interpretasi terbaik dari spesifikasi 3.16). Jika klien belum membatalkan, tafsirkan RequestCancelled
sebagai ServerCancelled
.
- penangan berikutnya dari middleware klien sekarang menjatuhkan hasil server jika permintaan sudah dibatalkan di sisi klien dengan mengembalikan nilai default VS Code untuk penyedia terkait (kebanyakan
null
). Ini merupakan perubahan besar karena pada rilis perpustakaan sebelumnya, middleware akan melihat hasilnya juga tidak digunakan oleh VS Code. Perubahan tersebut dilakukan untuk menghemat CPU dan memori dengan tidak mengonversi hasil respons yang tidak digunakan. - semua fungsi konverter yang menggunakan array sekarang async, menghasilkan dan mengambil token pembatalan. Ini adalah perubahan besar dan diperkenalkan untuk menghindari monopoli host ekstensi selama konversi tipe.
- tipe pengembalian ErrorHandler#error dan ErrorHandler#closed diubah secara drastis. Sekarang mendukung pengembalian pesan opsional yang akan ditampilkan kepada pengguna.
- Menambahkan dukungan untuk nilai sebaris.
- Menambahkan dukungan untuk petunjuk tatahan.
- Menambahkan dukungan untuk hierarki tipe.
- Menambahkan dukungan untuk dokumen buku catatan.
Protokol 3.16.0, 6.0.0 JSON-RPC, Klien 7.0.0 dan Server 7.0.0.
Untuk daftar rinci perubahan yang dilakukan pada protokol versi 3.16.0, lihat log perubahan spesifikasi 3.16.
Perubahan khusus perpustakaan adalah:
- pembersihan jenis Permintaan dan Pemberitahuan. Menghapus parameter generik RO yang tidak perlu. Ini adalah perubahan besar. Untuk beradaptasi cukup hapus argumen type.
- menambahkan konsep baru RegistrationType yang memisahkan metode registrasi dari metode permintaan atau notifikasi sebenarnya. Ini merupakan perubahan besar bagi pelaksana fitur khusus. Untuk beradaptasi, ganti nama properti
messages
menjadi registrationType
dan kembalikan RegistrationType
yang sesuai. Tambahan menghapus parameter pertama dari metode register
. - pembersihan
ErrorCodes
. Kode kesalahan khusus LSP dipindahkan ke namespace baru LSPErrorCodes
. Namespace ErrorCodes
di jsonrpc
tidak dicadangkan dengan benar untuk kode kesalahan khusus JSON RPC. Ini adalah perubahan besar. Untuk mengatasinya gunakan LSPErrorCodes
sebagai gantinya. - membagi kode menjadi umum, node dan browser untuk memungkinkan penggunaan modul npm klien dan server LSP di browser Web melalui webpack. Ini adalah perubahan yang dapat menyebabkan gangguan dan dapat menyebabkan kesalahan kompilasi/runtime jika tidak diterapkan. Setiap modul kini memiliki tiga ekspor berbeda yang mewakili pembagian menjadi umum, node, dan browser. Mari kita lihat
vscode-jsonrpc
sebagai contoh: (a) import vscode-jsonrpc
hanya akan mengimpor kode umum, (b) import vscode-jsonrpcnode
akan mengimpor kode umum dan kode node, dan (c) import vscode-jsonrpcbrowser
akan mengimpor kode umum dan kode browser. - menambahkan dukungan untuk mengontrol struktur parameter saat mengirim permintaan dan pemberitahuan di
vscode-jsonrpc
. Struktur parameter dapat dikontrol menggunakan argumen parameterStructures
tambahan saat membuat jenis permintaan atau notifikasi atau saat mengirim permintaan atau notifikasi yang tidak diketik menggunakan fungsi sendRequest
atau sendNotification
. Standarnya adalah ParameterStructures.auto
yang melakukan hal berikut:- gunakan
byPosition
untuk pesan dengan nol atau lebih besar dari satu parameter - untuk satu parameter digunakan
byName
untuk parameter yang merupakan literal objek. Menggunakan byPosition
untuk semua parameter lainnya.
Protokol 3.15.3, klien 6.1.x dan server 6.1.x
- Perubahan kecil pada usulan dukungan untuk token semantik.
Protokol 3.15.2, klien 6.1.x dan server 6.1.x
- Usulan dukungan untuk token semantik.
Protokol 3.15.0, Klien 6.0.0 & Server 6.0.0
- Dukungan kemajuan untuk pekerjaan yang dilakukan dan kemajuan hasil sebagian.
- Usulan implementasi untuk hierarki panggilan.
- Protokol
SelectionRangeRequest
ditambahkan:- API baru dalam Tipe:
SelectionRange
- API baru dalam Protokol:
SelectionRangeRequest
, SelectionRangeParams
, SelectionRangeClientCapabilities
, SelectionRangeServerCapabilities
, SelectionRangeProviderOptions
,
- Dukungan untuk implementasi dokumen teks khusus:
- paket npm baru
vscode-languageserver-textdocument
yang mengirimkan implementasi dokumen teks standar dengan pembaruan tambahan dasar. Server sekarang harus melengkapi paket npm ini terlebih dahulu. - implementasi dokumen teks yang tidak digunakan lagi dalam tipe.
- ini mengakibatkan kerusakan kecil di sisi server. Daripada melakukan
new TextDocuments
, Anda sekarang harus memasukkan konfigurasi dokumen teks untuk menyediakan panggilan balik guna membuat dan memperbarui dokumen teks. Berikut adalah contoh dalam TypeScript dan JavaScript
import { TextDocuments } from 'vscode-languageserver' ;
import { TextDocument } from 'vscode-languageserver-textdocument' ;
const documents = new TextDocuments ( TextDocument ) ;
const server = require ( "vscode-languageserver" ) ;
const textDocument = require ( "vscode-languageserver-textdocument" ) ;
const documents = new server . TextDocuments ( textDocument . TextDocument ) ;
5.1.1 Klien
- Memperbaiki klien [textDocument/rename] tidak mematuhi
RenameOptions
saat mendaftarkan penyedia
5.1.0 Klien & 5.1.0 Server
- Mengadopsi protokol versi 3.13.0
3.13.0 Protokol
-
FoldingRangeRequestParam
berganti nama menjadi 'FoldingRangeParams' ( FoldingRangeRequestParam
masih disediakan untuk kompatibilitas ke belakang) - Menambahkan dukungan untuk operasi membuat, mengganti nama, dan menghapus file dalam pengeditan ruang kerja.
5.0.0 Klien & 5.0.0 Server
- Buat klien bekerja dengan Electron 2.x. yang digunakan sejak VS Code 1.26.x
- Periksa apakah versi klien yang diharapkan yang ditentukan dalam
engines.vscode
di file package.json
cocok dengan versi VS Code yang dijalankan klien.
4.4.0 Klien & 4.4.0 Server & Protokol 3.10.0
- Menerapkan kerangka dokumen hierarkis
-
Color
, ColorInformation
, ColorPresentation
dipindahkan ke Jenis - Protokol
FoldingRangeRequest
ditambahkan:- API baru dalam Tipe:
FoldingRange
, FoldingRangeKind
- API baru dalam Protokol:
FoldingRangeRequest
, FoldingRangeRequestParam
, FoldingRangeClientCapabilities
, FoldingRangeServerCapabilities
, FoldingRangeProviderOptions
,
4.3.0 Klien & 4.3.0 Server & 3.9.0 Protokol
- Tambahkan dukungan untuk properti
preselect
di CompletionItem
4.2.0 Klien & 4.2.0 Server & 3.8.0 Protokol
- Tambahkan kelas CodeAction
- Tambahkan dukungan untuk literal tindakan kode sebagai nilai kembalian permintaan textDocument/codeAction
4.1.4 Klien & 4.1.3 Server
- Klien: pesan duplikat dikirim setelah server restart
4.1.1 Klien
- Informasi tentang kerusakan server hilang karena saluran keluaran ditutup
4.1.0 Klien & Server
Tambahkan dukungan untuk informasi terkait dalam diagnostik.
Pengecualian inisialisasi ditelan
Kesalahan dari penggantian nama masih tidak ditampilkan di VSCode
terminalProcess.sh tidak dikirimkan dalam paket dist
Tambahkan middleware untuk mencegat textDocument/publishDiagnostics
4.0.1 Klien
- menghapus pernyataan log konsol yang tidak perlu.
4.0.0 Server dan Klien
- menerapkan penambahan protokol terbaru. Yang perlu diperhatikan adalah konteks penyelesaian, item penyelesaian yang dapat diperluas dan jenis simbol serta dukungan penurunan harga untuk item penyelesaian dan bantuan tanda tangan. Pindah ke versi 4.0.0 sejak diperkenalkannya konteks penyelesaian memerlukan perubahan besar pada middleware klien. Tanda tangan lama:
provideCompletionItem?: ( this : void , document : TextDocument , position : VPosition , token : CancellationToken , next : ProvideCompletionItemsSignature ) => ProviderResult < VCompletionItem [ ] | VCompletionList > ;
sekarang berisi argumen tambahan context
:
provideCompletionItem?: ( this : void , document : TextDocument , position : VPosition , context : VCompletionContext , token : CancellationToken , next : ProvideCompletionItemsSignature ) => ProviderResult < VCompletionItem [ ] | VCompletionList > ;
- Perbaikan yang perlu diperhatikan:
- Mendapatkan nilai setelah menjalankan perintah secara terprogram
- Mengalami rekursi tak terbatas dalam kode ini di VSCode 1.18.1
- LanguageClient#handleConnectionClosed gagal memulai ulang jika this._resolvedConnection.dispose() muncul
6.0.0 Server dan Klien
- Pindah ke Protokol 3.15.0
- pindahkan target JS ke ES2017
3.15.0 Jenis dan Protokol
3.6.1 Jenis
- ESM ditambahkan sebagai format keluaran (untuk Webpack dan konsumen ESM lainnya)
3.5.0 Server dan Klien
- izinkan klien untuk memulai server dalam mode terpisah. Jika server berjalan terpisah, klien tidak akan memantau proses server dan mematikannya saat dimatikan.
- perbaikan bug.
3.4.0 Server dan Klien
- modul npm baru
vscode-languageserver-protocol
telah ditambahkan yang berisi definisi protokol dalam TypeScript. Modul ini sekarang dibagikan antara klien dan server. - dukungan untuk protokol yang diusulkan telah ditambahkan ke modul npm
protocol
, client
dan server
. Protokol yang diusulkan dapat berubah meskipun dikirimkan dalam versi modul npm yang stabil. - protokol yang diusulkan telah ditambahkan untuk fitur berikut:
- konfigurasi : dukungan untuk mengambil pengaturan konfigurasi dengan mengirimkan permintaan dari server ke klien
- workspaceFolders : dukungan untuk menangani lebih dari satu folder root per ruang kerja
- colorProvider : dukungan untuk menghitung rentang warna untuk suatu dokumen
3.3.0 Server dan Klien
- membagi klien menjadi klien dasar dan klien utama untuk mendukung penggunaan kembali implementasi klien di lingkungan lain.
- membuat pemrosesan permintaan menjadi lebih asinkron. Jadi, alih-alih langsung memproses permintaan ketika kode diberitahukan oleh panggilan balik Node.js, permintaan tersebut kini dimasukkan ke dalam antrean dan diproses dari antrean. Hal ini memungkinkan pembatalan atau pelipatan acara dengan lebih baik jika diperlukan.
- perbaikan bug lihat bulan April dan Mei
3.2.1 Server dan Klien
- Memperbaiki Penggunaan nama yang salah untuk metode
client/registerFeature
: seharusnya client/registerCapability
3.2.0 Server dan Klien
- membuat
WorkspaceEdit
sesuai dengan spesifikasi versi 3.x dan kompatibel dengan pustaka versi 2.x. - menambahkan kode kesalahan
RequestCancelled
. - Memperbaiki nodePath yang tidak berfungsi (vscode-tslint)
- Memperbaiki pembaruan dari 3.0.4/3.0.5 ke 3.1.0 merusak ekstensi saya
3.1.0 Server dan Klien
- tambahkan dukungan untuk pipa bernama dan transportasi file soket
- memperbaiki masalah kunci mati dengan node-ipc.
3.0.5 Server dan 3.0.4 Klien
-
Files.uriToFilePath
tidak digunakan lagi dan digantikan dengan modul npm vscode-uri yang menyediakan implementasi URI yang lebih lengkap untuk VS Code. - menjadikan
rootPath
opsional karena tidak digunakan lagi di 3.x.
3.0.3: Klien, Server dan JSON-RPC
Fitur Baru
- Memindahkan semua perpustakaan ke TypeScript 2.xx
- Klien dan Server dikompilasi ke ES6. JSON-RPC masih dikompilasi ke ES5.
- JSON-RPC mendukung n permintaan parameter dan pemanggilan notifikasi.
- Dukungan untuk protokol Server Bahasa versi 3.0. Beberapa hal yang menarik adalah:
- Dukungan untuk tanda fitur.
- Dukungan untuk pendaftaran dinamis. Dalam perpustakaan versi 2.x, server mengumumkan kemampuannya secara statis. Di 3.x, server sekarang dapat secara dinamis mendaftarkan dan membatalkan pendaftaran penangan kemampuan menggunakan permintaan baru
client/registerCapability
dan client/unregisterCapability
. - Dukungan untuk mendelegasikan eksekusi perintah melalui
workspace/executeCommand
ke server.
- Dukungan untuk cuplikan di item penyelesaian:
- Tipe baru
InsertTextFormat
- CompletionItem.insertTextFormat mengontrol apakah pengujian yang disisipkan ditafsirkan sebagai teks biasa atau cuplikan.
Perubahan yang dapat menyebabkan gangguan:
- untuk memastikan pengiriman notifikasi dan permintaan yang teratur, klien bahasa sekarang menampilkan jika sendRequest, onRequest, sendNotification, atau onNotification dipanggil sebelum klien siap. Gunakan Janji onReady() untuk menunggu hingga klien siap.
let client = new LanguageClient ( ... ) ;
client . onReady ( ) . then ( ( ) => {
client . onNotification ( ... ) ;
client . sendRequest ( ... ) ;
) ;
- menghapus fungsi modul yang tidak digunakan lagi pada konverter kode2Protokol dan protokol2Kode. Gunakan properti yang sesuai pada instance LanguageClient untuk mendapatkan akses ke konverter yang sama yang digunakan oleh LanguageClient.
// Old
import { Protocol2Code , ... } from 'vscode-languageclient' ;
Protocol2Code . asTextEdits ( edits ) ;
// New
let client = new LanguageClient ( ... ) ;
client . protocol2CodeConverter . asTextEdits ( edits ) ;
- karena penggunaan TypeScript 2.xx dan perbedaan generasi d.ts, pengguna versi baru juga perlu pindah ke TypeScript 2.xx. Biasanya
LanguageClient
digunakan dalam ekstensi VS Code. Anda dapat menemukan langkah-langkah mendetail tentang cara meningkatkan ekstensi VS Code ke TypeScript 2.xx di sini. -
activeSignature
dan activeParameter
yang salah dinyatakan sebagai opsional di SignatureHelp
. Sekarang hal-hal tersebut bersifat wajib. - file
protocol.ts
menggunakan tipe enum di 2.x. Namun protokolnya sendiri berbasis angka karena tidak ada asumsi yang dapat dibuat tentang keberadaan tipe enum dalam bahasa implementasi. Untuk membuatnya lebih jelas, enum diganti berdasarkan tipe angka dengan definisi tipe literal. Hal ini mungkin mengakibatkan kesalahan kompilasi jika suatu nomor ditetapkan secara langsung ke tipe enum sebelumnya tanpa pemeriksaan rentang yang tepat. - Tipe Permintaan dan Pemberitahuan kini menjadi kelas, bukan antarmuka. Selain itu, mereka sekarang mengambil argumen tipe tambahan untuk mengetikkan opsi registrasi untuk registrasi dinamis. Mengadopsi perubahan itu cukup mudah. Cukup baru
RequestType
atau NotificationType
dan tambahkan void sebagai jenis opsi pendaftaran. Harap ingat untuk memperbarui ini di sisi klien dan server:
// Old
export namespace MyRequest {
export const type : RequestType < MyParams , MyResult , void > = { get method ( ) { return 'myRequest' ; } } ;
}
export namespace MyNotification {
export const type : NotificationType < MyParams > = { get method ( ) { return 'myNotification' ; } } ;
}
// New
export namespace MyRequest {
export const type = new RequestType < MyParams , MyResult , void , void > ( 'myRequest' ) ;
}
export namespace MyNotification {
export const type = new NotificationType < MyParams , void > ( 'myNotification' ) ;
}
2.6.0: Klien dan server
- Dukungan untuk Penyedia Tautan Dokumen
- Dukungan untuk pengeditan teks tambahan dan perintah dalam item penyelesaian.
2.5.0: Klien dan Server
- Penanganan kesalahan yang lebih baik di sisi klien.
- Acara untuk memulai dan menghentikan server.
- Opsi inisialisasi dapat disediakan sebagai suatu fungsi.
- Dukungan untuk pengkodean stdio / stderr.
- Dukungan untuk mengkonversi URI antara klien dan server.
- Pencatatan log koneksi server.konsol sekarang muncul di saluran keluaran yang sesuai, bukan di konsol pengembang.
- Jika saluran komunikasi non stdio digunakan antara klien dan server, stdio server dialihkan ke saluran keluaran.
- Seorang klien sekarang dapat memiliki id dan nama.
2.4.0 Klien dan Server
- Tipe data seperti Range, Position, TextDocument, Hover, CompletionItem... diekstraksi ke modul simpul baru vscode-lingualserver-types . Modul simpul baru dibagikan antara server dan klien dan juga dapat digunakan oleh perpustakaan layanan bahasa yang ingin menggunakan tipe data yang sama.
2.3.0: Khusus klien
- klien sekarang me-restart server jika server crash tanpa pemberitahuan keluar sebelumnya dikirimkan. Strategi yang digunakan untuk memulai ulang server dapat diterapkan (lihat
LanguageClientOptions.errorHandler
). Strategi defaultnya adalah restart server kecuali server crash 5 kali atau lebih dalam 3 menit terakhir.
2.0: Penjelasan rinci tentang versi 2.0 dapat ditemukan di sini. Ringkasan perubahan:
- dukungan untuk pembatalan permintaan. Pembatalan secara otomatis dihubungkan ke token pembatalan VSCode
- pemberitahuan penyimpanan dokumen.
- Dokumen teks yang disinkronkan membawa nomor versi dokumen teks VSCode
1.1.x: Menyediakan semua fitur layanan bahasa yang tersedia di host ekstensi melalui protokol klien/server bahasa. Fitur ditambahkan:
- Tindakan Kode: memberikan tindakan untuk memperbaiki masalah diagnostik.
- Code Lens: memberikan perintah yang ditampilkan bersama dengan teks sumber.
- Pemformatan: keseluruhan dokumen, rentang dokumen, dan pemformatan berdasarkan jenis.
- Rename refactoring: menyediakan penggantian nama simbol.
1.0.x: Versi yang menyediakan dukungan untuk fitur-fitur berikut:
- Transportasi: stdio dan node IPC dapat digunakan sebagai transportasi.
- Sinkronisasi dokumen: sinkronisasi dokumen teks tambahan dan lengkap.
- Sinkronisasi konfigurasi: sinkronisasi pengaturan konfigurasi ke server.
- Acara file: sinkronisasi acara file ke server.
- Kode Lengkap: menyediakan daftar kode lengkap.
- Sorotan Dokumen: menyorot semua simbol 'sama' dalam dokumen teks.
- Hover: memberikan informasi hover untuk simbol yang dipilih dalam dokumen teks.
- Bantuan Tanda Tangan: memberikan bantuan tanda tangan untuk simbol yang dipilih dalam dokumen teks.
- Definisi Goto: memberikan dukungan definisi goto untuk simbol yang dipilih dalam dokumen teks.
- Temukan Referensi: menemukan semua referensi seluruh proyek untuk simbol yang dipilih dalam dokumen teks.
- Daftar Simbol Dokumen: mencantumkan semua simbol yang ditentukan dalam dokumen teks.
- Daftar Simbol Ruang Kerja: mencantumkan semua simbol seluruh proyek.
0.10.x: Versi awal untuk membangun API yang baik untuk sisi klien dan server
Lisensi
MIT