Visual Studio的语言服务器协议_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > Visual Studio的语言服务器协议

Visual Studio的语言服务器协议

 2017/12/15 22:56:17    程序员俱乐部  我要评论(0)
  • 摘要:英文原文:LanguageServerProtocolSupportforVisualStudio语言服务器协议(LSP)是VisualStudioCode的一个重要组件。语言服务器实际上是单独运行的编译器或分析器,它负责处理各种任务,如编译器错误报告、文本悬浮、代码自动完成(也就是IntelliSense),等。语言服务器并不是个新概念,Vim和Emacs早就在用它实现代码自动完成功能。C#的语言服务器叫作OmniSharp,支持VSCode、Sublime、Atom、Emacs
  • 标签:Visua Visual Studio 服务器 服务 协议
class="topic_img" alt=""/>

  英文原文:Language Server Protocol Support for Visual Studio

  语言服务器协议(LSP)是 Visual Studio Code 的一个重要组件。语言服务器实际上是单独运行的编译器或分析器,它负责处理各种任务,如编译器错误报告、文本悬浮、代码自动完成(也就是 IntelliSense),等。

  语言服务器并不是个新概念,Vim 和 Emacs 早就在用它实现代码自动完成功能。C#的语言服务器叫作 OmniSharp,支持 VS Code、Sublime、Atom、Emacs、Vim 和 Brackets。

  VS Code 为 TypeScript 实现了另一种语言服务器。与 OmniSharp 不同的是,它是基于 HTTP 的,“通过标准输入和输出与服务器进程打交道,并使用了 JSON 消息格式,类似 V8 调试器协议的请求和响应”。

  VS Code 现在有两种语言服务器,微软认为有必要制定一个通用的标准,现有和未来的新语言共同遵循该标准。于是,语言服务器协议出现了。

  语言服务器协议采用 JSON-RPC 作为最基本的消息格式。JSON-RPC 是 SOAP 的替代品,更为轻量级。与 SOAP 类似,它对传输层没有特殊的要求,因此可以通过标准输入输出、管道、套接字等方式进行传输。

  Visual Studio 本身不支持语言服务器协议,所以需要使用适配器,让 VS 语言服务与 LSP 客户端发生交互。微软开发实验室提供了一个叫作语言服务器协议客户端的工具。

  除了客户端工具,可能还需要一个语言扩展。GitHub 上的语言服务器协议示例演示了如何创建语言扩展。

  Adam Driscoll 提供了一个更为复杂的示例,叫作 PowerShell 的 Visual Studio 语言服务器协议扩展。Adam 说:

我认为未来要支持更多的语言需要依赖 LSP 客户端。Visual Studio 和 Visual Studio Code 共享同一个语言服务,这是一个大好局面。但我们还可以做得更好。LSP 现在不支持调试。它是一种特殊的协议。LSP 在 Visual Stuido 中还不够完善,文档中已经有一个图表说明了这个问题。要完善它尚需时日。
发表评论
用户名: 匿名