微软、红帽及容器开发环境供应商Codenvy本周在Red Hat DevNation开放源码大会上宣布将共同发展语言服务器协定(Language Server Protocol,LSP)项目,让不同的程序编辑器与集成开发环境(IDE)方便嵌入各种程序语言,允许开发人员在最喜爱的工具中使用各种语言来撰写程序。
LSP是个开放源码项目,唯一基于JSON的语言服务器数据交换协定,目前由GitHub代管,并采用CC及MIT授权。该协定主要用来促进编辑器及语言服务器之间的互动,允许开发人员在各种编辑器或整合开发环境中存取智慧型的程序语言工具,像是以符号搜寻、语法分析、自动完成代码、移至定义、描绘轮廓或重构等。
每款程序语言都有独立的语言服务器,这些服务器可能是由社群或语言供应商所建置,Codenvy已展开语言服务器的登记服务,以期打造支持LSP的语言服务器列表,以利各种不同的编辑器存取。
Codenvy执行长Tyler Jewell指出,过去绝大多数的语言都只会针对单一工具进行最佳化,阻碍了开发人员使用他们最喜爱的编辑器,也局限了程序语言的推广对象,透过微软、红帽及Codenvy所共同支持的LSP,开发人员将可在自己喜爱的编辑器中使用任何语言。
除了可让开发人员在习惯的编辑器中采用新语言之外,程序语言供应商也可透过LSP让程序语言支持更多的操作系统及工具,此外,微软的Visual Studio Code及Eclipse Che都已添增对LSP的支持。
现阶段LSP已支持C++、PowerShell、JSON、CSS/LESS/SASS、Xtext、Crane PHP、Haxe、Java和RAML。集成开发环境方面,微软Visual Studio Code和Eclipse Che目前已经实现了LSP协议。LSP协议在Eclipse Che的实现是个开源代码分支,第三季度开始提供给一般用户下载。同时,红帽也正在打造首个独立的Java语言服务器。
语言服务器协议方面的协作提供的功能包括:
- 开发人员的灵活性和选择性:开发人员可以在使用新编程语言时试用各种丰富编辑体验,而同时仍继续使用自己的首选工具。
- 多个操作系统:编程语言提供商可以在多种操作系统里支持几种工具,可最大限度地实现覆盖范围和和相关性。
- 编辑器支持:微软Visual Studio Code和Eclipse Che、新一代的Eclipse IDE增添了对LSP协议的支持。
- 多种编程语言的支持:除了今天起可供使用的程语言服务器,年内计划将启动更多支持LSP的语言服务器。其中包括Omnisharp项目的C#, Typefox的xText和R、Ensime的JavaFX和微软的CSS。红帽开源了一个项目的工作,以提供首个独立的Java语言服务器,红帽提议将其捐给Eclipse基金会。
- 开放合作:Codenvy、微软和红帽致力于与开源社区合作开发LSP协议。LSP协议托管在公共存储服务器里,任何人都可以提交反馈,或是贡献项目修改请求,达到提高和完善LSP项目的目的。
- 语言服务器注册:语言服务器在全球性注册表里公开发布,该注册表由Codenvy建立,是Eclipse项目的一部分,托管在Eclipse基金会里。任何工具软件借助全球性注册表就可以找到语言服务器并对其进行使用。