微软、红帽及容器开发环境供应商 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 基金会里。任何工具软件借助全球性注册表就可以找到语言服务器并对其进行使用。