ZD至顶网软件频道消息: 近日,微软在旧金山召开的DevNation大会上宣布推出一个开源的语言服务器协议。而更有意思的是,这是微软与Codenvy、红帽联合推出的。
微软、Codenvy和红帽联合推出一个支持编程语言和集成开发环境之间沟通的开源通用协议。
这个消息听起来可能有些令人震惊。但要知道,微软一直以来都在深层次上采用开源方法。另外,微软也一直努力将Visual Studio和开源Eclipse开发环境合在一起。除此之外,微软还推出了在红帽企业Linux(RHEL)里运行SQL Server、.NET Core 1.0版和ASP.NET。综合以上种种,现在看到微软和其开源合作伙伴创建了语言服务器协议(LSP)也就不会觉得太奇怪了。
据了解,LSP旨在提供一个将编程语言整合到各种代码编辑器及集成开发环境(IDE)的通用方法,并为各种编程语言在不同软件工具里提供丰富的编辑体验,扩展开发人员的灵活性和生产力。
Codenvy CEO兼Eclipse Che项目负责人Tyler Jewell表示:“在过去,大多数编程语言只是针对一个工具进行优化,这就使得开发人员在使用自己熟悉和喜欢的编辑器时受到限制,也限制了语言提供商的机会。”他还表示,“开发者可利用微软、红帽、Codenvy共同支持的通用协议,在自己喜欢的工具里获得任何关于任何编程语言的智能用法。”
LSP是一个开源项目,其中定义了语言服务器里基于JavaScript对象符号(JSON)的数据交换协议。目前,该项目托管在GitHub上,用的是创造通用和麻省理工学院授权。
LSP旨在促进编辑器和语言服务器之间的互操作性,令开发人员能够使用各种智能编程语言助手,这些语言助手的主要功能包括:找符号、语法分析、代码补全、定义定位、综视以及利用所选用的编辑器或IDE重构代码。
LSP目前支持以下语言:C++、PowerShell、JSON、CSS/LESS/SASS、Xtext、Crane PHP、Haxe、Java和RAML。集成开发环境方面,微软Visual Studio Code和Eclipse Che目前已经实现了LSP协议。LSP协议在Eclipse Che的实现是个开源代码分支,第三季度开始提供给一般用户下载。
微软杰出工程师Erich Gamma 表示:“我们在将Omnisharp C#和TypeScript整合到到VS Code后就定义了通用语言服务器协议。经过两次语言服务器的整合,有一点变得很明显,那就是对于工具提供商和语言提供商来说,一个共同的协议是一个双赢结果。如此,语言提供商可以将自己的语言支持拿出来,其他工具提供商就可以拿去用,就很容易了。”
语言服务器协议方面的协作提供的功能包括:
- 开发人员的灵活性和选择性:开发人员可以在使用新编程语言时试用各种丰富编辑体验,而同时仍继续使用自己的首选工具。
- 多个操作系统:编程语言提供商可以在多种操作系统里支持几种工具,可最大限度地实现覆盖范围和和相关性。
- 编辑器支持:微软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基金会里。任何工具软件借助全球性注册表就可以找到语言服务器并对其进行使用。