Microsoft已将VS Code 语言服务器协议开源

简介:

Microsoft已将VS Code编辑器用于与各种可支持的语言服务器进行通信的协议开源。

Visual Studio Code是一个由Microsoft开发的IDE,支持超过150种语言。为支持多种语言,该IDE包含了Monaco Editor以及用于语法检查、错误报告等功能的代码验证工具,并通过语言服务器提供了智能感知和重构等功能。通常每种可支持的编程语言需要一个这样的服务器,Monaco与这些服务器之间的通信是通过语言服务器协议(LSP)实现的,Microsoft最近已将LSP开源。

代码验证是一种需要投入大量资源的操作,因此语言服务器会通过一个独立的进程执行。语言服务器可使用多种语言编写,并使用一种基于JSON-RPC的轻量级协议通过stdin/stdout与编辑器交换信息。根据正在与Microsoft合作开发Visual Studio的计算机科学家Erich Gamma介绍,该协议受到了来自V8调试器协议的启发。

与HTTP类似,LSP也包含一个页头区,随后是JSON-RPC内容区,代码片段如下所示:

Content-Length: ... { "jsonrpc": "2.0", "id": 1, "method": "textDocument/didOpen", "params": { ... }}

页头区可包含两个用于指定内容长度和类型的字段。内容可由发往语言服务器的请求或从语言服务器收到的响应所代表。这一区域可用于发送消息、通知,以及命令。通过指定可支持的能力,语言服务器可以对代码验证功能可以使用的特性进行扩展。由于可以同时向不同语言服务器发送多个请求,每个数据包都包含一个ID字段,借此编辑器可以区分不同的回应。

LSP实现了编辑器和所用语言服务器之间的解耦,这样就可以在一个IDE种使用多个服务器,或在支持某一协议的多个IDE之间重用同一个语言服务器。Microsoft和其他供应商已经为C++、CSS/LESS/SASS、JSON、PowerShell、Xtext、PHP等语言创建了服务器。Eclipse Che也已选择了LSP并计划借此提供针对C/C++、C#、Go、JSON、R、TypeScript、RAML以及XML的支持。Red Hat将为Eclipse Che提供Java语言服务器。此外还有适用于C#、Haxe、Java和Node.js的SDK。





====================================分割线================================


本文转自d1net(转载)

目录
相关文章
|
3天前
|
运维 安全 开发工具
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
31 1
|
4月前
|
运维 监控 Linux
服务器管理面板大盘点: 8款开源面板助你轻松管理Linux服务器
在数字化时代,服务器作为数据存储和计算的核心设备,其管理效率与安全性直接关系到业务的稳定性和可持续发展。随着技术的不断进步,开源社区涌现出众多服务器管理面板,这些工具以其强大的功能、灵活的配置和友好的用户界面,极大地简化了Linux服务器的管理工作。本文将详细介绍8款开源的服务器管理面板,包括Websoft9、宝塔、cPanel、1Panel等,旨在帮助运维人员更好地选择和使用这些工具,提升服务器管理效率。
|
4月前
|
运维 安全 Linux
2024 主流的开源服务器面板推荐
随着云计算和虚拟专用服务器(VPS)的普及,服务器面板工具成为了企业和个人管理服务器的得力助手。一个优秀的服务器面板不仅可以简化服务器管理任务,还可以提升工作效率和安全性。本文将为您介绍并测评几款2024年全网热门的服务器面板,包括Websoft9、宝塔、cPanel、1Panel等,帮助您找到最适合自己的管理工具。
2024 主流的开源服务器面板推荐
|
4月前
|
监控 Ubuntu Linux
使用VSCode通过SSH远程登录阿里云Linux服务器异常崩溃
通过 VSCode 的 Remote - SSH 插件远程连接阿里云 Ubuntu 22 服务器时,会因高 CPU 使用率导致连接断开。经排查发现,VSCode 连接根目录 ".." 时会频繁调用"rg"(ripgrep)进行文件搜索,导致 CPU 负载过高。解决方法是将连接目录改为"root"(或其他具体的路径),避免不必要的文件检索,从而恢复正常连接。
|
5月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
1049 3
|
5月前
|
网络安全 Docker 容器
VScode远程服务器之远程 远程容器 进行开发(五)
VScode远程服务器之远程 远程容器 进行开发(五)
129 1
|
5月前
|
网络协议 Unix Linux
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
一个.NET开源、快速、低延迟的异步套接字服务器和客户端库
132 4
|
5月前
|
IDE 网络安全 开发工具
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
本文介绍了如何使用VS Code通过Remote-SSH插件连接远程服务器进行代码开发,并与PyCharm进行了对比。作者认为VS Code在连接和配置多个服务器时更为简单,推荐使用VS Code。文章详细说明了VS Code的安装、远程插件安装、SSH配置文件编写、服务器连接以及如何在连接后切换文件夹。此外,还提供了使用密钥进行免密登录的方法和解决权限问题的步骤。
2472 0
IDE之vscode:连接远程服务器代码(亲测OK),与pycharm链接服务器做对比(亲自使用过了),打开文件夹后切换文件夹。
|
5月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
707 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
5月前
|
NoSQL PHP Redis
布谷语音app源码服务器环境配置及技术开发语言
布谷语音app源码服务器环境配置及技术语言研发。。