微软推开源协议LSP 欲将其塑造成编程标准

简介:

近日,微软在旧金山召开的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基金会里。任何工具软件借助全球性注册表就可以找到语言服务器并对其进行使用。
本文转自d1net(转载)

相关文章
|
8月前
|
JSON API 开发者
1688 快递费用 API 接口的技术剖析与应用
1688快递费用API接口为企业和开发者提供自动化、高效化的快递费用查询服务,打破人工查询的繁琐局面。通过输入寄件与收件地址、商品重量、体积及选择快递公司等信息,接口精准计算费用并返回结果,支持中通、圆通等主流快递。输出内容包括快递费用、预估时效及附加费说明,助力电商精细化运营。Python示例代码展示了如何使用requests库发起POST请求并解析响应数据,实现费用查询自动化。
452 10
|
9月前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
344 3
RT-DETR改进策略【Neck】| ASF-YOLO 注意力尺度序列融合模块改进颈部网络,提高小目标检测精度
|
9月前
|
人工智能 算法 API
谷歌AI Gemini 2.5 pro国内使用教程, 2025最新版!
在 2025 年 2 月初,谷歌又推出了 Gemini 2.0 Pro 系列模型,进一步巩固了其在 AI 领域的领先地位,同时也正式向外界宣告,我们进入了 Gemini 2.0 时代
4665 5
|
存储 数据挖掘 Linux
Linux C语言之时间函数精讲
Linux C语言之时间函数精讲
443 1
Proxifier是什么?如何配置使用?
【10月更文挑战第3天】Proxifier是什么?如何配置使用?
2867 1
|
druid Java 数据库
德鲁伊druid数据库明文密码加密
德鲁伊druid数据库明文密码加密
1029 0
德鲁伊druid数据库明文密码加密
|
机器学习/深度学习 人工智能 TensorFlow
神经网络入门到精通:Python带你搭建AI思维,解锁机器学习的无限可能
【9月更文挑战第10天】神经网络是开启人工智能大门的钥匙,不仅是一种技术,更是模仿人脑思考的奇迹。本文从基础概念入手,通过Python和TensorFlow搭建手写数字识别的神经网络,逐步解析数据加载、模型定义、训练及评估的全过程。随着学习深入,我们将探索深度神经网络、卷积神经网络等高级话题,并掌握优化模型性能的方法。通过不断实践,你将能构建自己的AI系统,解锁机器学习的无限潜能。
284 0
|
缓存 监控 负载均衡
Java一分钟之-Ehcache:分布式缓存系统
【6月更文挑战第17天】**Ehcache是Java的开源缓存库,支持本地和分布式缓存,提供负载均衡、数据复制和容错能力。常见问题包括网络分区导致的数据不一致、缓存雪崩和配置不当引起的性能瓶颈。解决策略涉及选择强一致性策略、设置合理缓存过期时间和监控调整配置。使用Ehcache需添加相关依赖,并配置分布式缓存,如示例所示,通过CacheManager创建和管理缓存。实践中,持续监控和优化配置至关重要。**
424 1
|
Dubbo Java 应用服务中间件
Spring Boot整合Dubbo+Zookeeper实现RPC调用
Spring Boot整合Dubbo+Zookeeper实现RPC调用 技术栈说明 Dubbo:Dubbo作为RPC框架,能在多个服务之间实现远程服务的调用。比如有两个独立的微服务A和B,A服务想要调用B服务时,因为两者不在同个内存空间中,不能直接调用,所以可以通过Dubbo实现这点。 功能和Spring Cloud的Feign相同,两者都是应用于微服务架构的远程调用框架 Zookeeper:作为注册中心去管理Dubbo服务,这点和Eureka、Nacos相同。 概述 通过一个示例说明Dubbo+Zookeeper在Spring Boot中的应用。 现有两个服务provider和con
521 4
|
Java 测试技术 C#
几个好用的自动化测试工具总结
【6月更文挑战第4天】几个好用的自动化测试工具总结
982 0