El impacto del protocolo de servidor de idiomas (LSP) en el futuro de los IDE

Traducción del artículo Cómo el protocolo del servidor de idiomas afecta el futuro de los IDE





Autor original Mehul Mohan





Desde sus inicios, Visual Studio Code ha influido por sí solo en el ecosistema de desarrolladores tanto que no habrá vuelta atrás. Es una herramienta de dominio público gratuita y de código abierto y es una herramienta muy poderosa.





Pero gracias a VSCode, Microsoft en 2016 dio a luz a otra cosa súper significativa que es menos conocida. Este es el Protocolo de servidor de idiomas.





¿Qué es el protocolo de servidor de idiomas?

(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 . .





Con la llegada del LSP, lo único que quedaba en el editor era agregar soporte para el protocolo del servidor de idiomas. Después de eso, cualquiera que cree un servidor de idiomas (siguiendo los estándares LSP) puede integrarse fácilmente en el editor de código sin que el editor nunca "sepa" en qué idioma está trabajando.





El futuro del IDE

Como los servidores de idiomas se implementan para diferentes lenguajes de programación, los desarrolladores pueden elegir el editor de su elección. Sin vinculación a un idioma específico. Ya no es necesario que te limites, por ejemplo, solo XCode para el desarrollo de Swift o PyCharm para Python. No solo eso, los LSP se pueden incrustar directamente en JavaScript para admitir IntelliSense en el navegador. ¡Este es un momento maravilloso para los programadores!








All Articles