Visual Studio的语言服务器协议
来源:互联网 发布:菲律宾跳水队 知乎 编辑:程序博客网 时间:2024/06/05 15:27
语言服务器协议(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中还不够完善,文档中已经有一个图表说明了这个问题。要完善它尚需时日。
原文: http://www.infoq.com/cn/news/2017/12/LSP-Visual-Studio
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com
- Visual Studio的语言服务器协议
- Visual Studio 2015 Git无法使用SSH协议的解决方法
- 关于Visual Studio无法连接到Visual Studio 的Localhost Web服务器问:
- 无法连接到Visual Studio 的Localhost Web服务器
- 无法启动 visual studio 的 Localhost web 服务器
- 无法启动 Visual Studio 的 Localhost Web 服务器
- visual studio发布到远程服务器的IIS
- Visual Studio 2013语言设置
- visual studio 环境语言设置
- Visual Studio:针对 Java 开发人员的 C# 编程语言
- Visual Studio:针对 Java 开发人员的 C# 编程语言
- Visual Studio:针对 Java 开发人员的 C# 编程语言
- Visual Studio:针对 Java 开发人员的 C# 编程语言
- Visual Studio:针对 Java 开发人员的 C# 编程语言
- Microsoft Visual Studio 2008 各种语言版本的下载
- 采用Visual Studio Debug C/C++语言的mex文件
- Visual Studio 11预览: 新的编程语言功能
- 彻底解决Visual Studio 2010/2008编写C语言的问题
- win10系统下,python中Numpy包的安装及使用
- 生日悖论扩展引申1-c++代码实现
- iOS开发网络篇 一一 JSON解析
- Codeforces Round #451 (Div. 2) A-C题解
- Codeforces Round #451 (Div. 2)题解
- Visual Studio的语言服务器协议
- 1003. Emergency (25)(floyd)
- 自动类型安全的REST .NET标准库refit
- 使用Windows兼容包简化向.NET Core的迁移
- hibernate配置文件
- haskell学习笔记(1)
- 页面呈现
- 单例模式浅谈
- 【BZOJ】3007 拯救小云公主 最短路径