[聚合文章] Visual Studio的语言服务器协议

.Net 2017-12-15 16 阅读

语言服务器协议 (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中还不够完善,文档中已经有一个图表说明了这个问题。要完善它尚需时日。

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

Ubuntu 14.04 安装Visual Studio Code  http://www.linuxidc.com/Linux/2016-03/129052.htm

使用Visual Studio Code开发TypeScript http://www.linuxidc.com/Linux/2015-07/119456.htm

Visual Studio Code 简单试用体验 http://www.linuxidc.com/Linux/2015-05/116887.htm

Visual Studio Code试用体验 http://www.linuxidc.com/Linux/2015-07/120378.htm

Visual Studio调试技巧分享 http://www.linuxidc.com/Linux/2017-11/148700.htm

Ubuntu上配置VTK开发环境——基于Visual Studio Code 与 GCC http://www.linuxidc.com/Linux/2017-09/147169.htm

在Ubuntu中用Visual Studio Code编译调试C\C++ http://www.linuxidc.com/Linux/2017-09/147171.htm

Ubuntu 14.04如何安装Visual studio Code http://www.linuxidc.com/Linux/2016-07/132886.htm

Visual Studio Code 1.18 发布 (Ubuntu如何下安装) http://www.linuxidc.com/Linux/2017-11/148946.htm

Visual Studio 的详细介绍 请点这里

Visual Studio 的下载地址 请点这里

本文永久更新链接地址 http://www.linuxidc.com/Linux/2017-12/149445.htm

注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。