Dampak Protokol Server Bahasa (LSP) di Masa Depan IDE

Terjemahan artikel Bagaimana Protokol Server Bahasa Mempengaruhi Masa Depan IDE





Penulis asli Mehul Mohan





Sejak awal, Visual Studio Code telah mempengaruhi ekosistem pengembang sendirian sehingga tidak akan ada jalan mundur. Ini adalah alat domain publik sumber terbuka dan gratis serta merupakan alat yang sangat ampuh.





Namun berkat VSCode, Microsoft pada tahun 2016 melahirkan hal super bermakna lainnya yang kurang dikenal. Ini adalah Protokol Server Bahasa.





Apa itu Protokol Server Bahasa?

(Language Server Protocol - LSP) - ( HTTP FTP).





- , . - , (, , ), - , , CMD/Ctrl- , .





, . HTTP JSON-RPC .





LSP?

, VSCode ? , VSCode, IntelliSense , C, Python, Java ..? LSP.





IntelliSense HTML/CSS/JavaScript VSCode ( , PyCharm Python). LSP .





JSON-RPC?

JSON-RPC JSON (Remote Procedure Call). ( , REST ), - , API REST.





JSON-RPC:





// Request
curl -X POST β€”data '{
	"jsonrpc": "2.0",
	"method": "runThisFunction",
	"params": [ "some-param", 2 ],
	"id": 1
}'
// Response
{
  "jsonrpc": "2.0",
  "result": "codedamn",
  "id": 1
}
      
      



JSON RPC. JSON-RPC, runThisFunction



, .





LSP + JSON-RPC

LSP JSON-RPC . :





Content-Length: <bytes of JSON>\r\n\r\n<json-payload>
      
      



:





Content-Length: 78

{"jsonrpc":"2.0","method":"runThisFunction","params":["some-param",2],"id":1}
      
      



LSP , Content-Length



, CRLF



\r\n



. , ccls



, , :





, , ccls



, , runThisFunction



. , Content-Length



JSON-RPC.





?

LSP, Microsoft M x N M + N.





M = (C, C++, PHP, Python, Node, Swift, Go ..).





N = (VSCode, Eclipse, Notepad++, Sublime Text ..).





, M N , M*N . .





Dengan munculnya LSP, satu-satunya hal yang tersisa di editor adalah menambahkan dukungan untuk protokol server bahasa. Setelah itu, siapa pun yang membuat server bahasa (mengikuti standar LSP) dapat dengan mudah berintegrasi ke editor kode tanpa editor tidak pernah "mengetahui" bahasa apa yang mereka gunakan!





Masa depan IDE

Karena server bahasa diimplementasikan untuk bahasa pemrograman yang berbeda, menjadi mungkin bagi pengembang untuk memilih editor pilihan mereka. Tanpa mengikat bahasa tertentu. Tidak perlu membatasi diri Anda lagi, misalnya hanya XCode untuk pengembangan Swift atau PyCharm untuk Python. Tidak hanya itu, LSP bisa langsung ditanamkan ke JavaScript untuk mendukung IntelliSense di browser! Ini adalah waktu yang luar biasa bagi para programmer!








All Articles