写点什么

Visual Studio 的语言服务器协议

  • 2017-12-14
  • 本文字数:761 字

    阅读完需:约 2 分钟

语言服务器协议(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

2017-12-14 18:001447
用户头像

发布了 321 篇内容, 共 127.0 次阅读, 收获喜欢 138 次。

关注

评论

发布
暂无评论
发现更多内容

Linux文件查找常用命令-详细笔记

学神来啦

云计算 Linux 运维

技术解码丨实时音视频与PSTN融合的解决方案

腾讯云音视频

腾讯云 音视频 PSTN

从零开始学习3D可视化之演示项目

ThingJS数字孪生引擎

大前端 可视化 3D 3D可视化

一萌妹子的面试经历,美团四面三小时,成功拿到Java岗offer

白亦杨

Java 编程 程序员 架构师 计算机

花费近一年时间整理的Android核心知识清单,面试篇

欢喜学安卓

android 程序员 面试 移动开发

程序员工资高,到底程序员的工资有多高?你不了解的程序员!

应聘高级Android工程师历程感言,你不懂还不学?

欢喜学安卓

android 程序员 面试 移动开发

云原生时代,服务网格能给企业带来哪些价值?

行云创新

云原生 解决方案 服务网格

Rancher × Apache APISIX:极速部署更好用的开源网关和 Ingress Controller

API7.ai 技术团队

Kubernetes 网关 rancher APISIX

大专的我,闭关56天,含泪拿下阿里offer,五轮面试,六个小时灵魂拷问

最壕58人逆天改命:四面阿里拿offer后,才发现师哥给的面试笔记有多强大

Java架构师迁哥

HarmonyOS走进西安电子科技大学国际双创周

科技汇

语言特性实战(一)

南冥

iOS底层面试题(上篇)

程序员 面试

SpringBoot中时间格式化的5种方法!

王磊

spring springboot

直接裂开!京东二面被问SpringBoot整合MongoDB,我不会啊

Java架构没有996

Java mongodb 程序员 后端 JAVA开发

融云技术分享:全面揭秘亿级IM消息的可靠投递机制

JackJiang

即时通讯 IM 可靠消息最终一致 融云

「腾讯面试题」兔子试毒

DEMO CHINA带着1000+投资人,500+好项目首登重庆

创业邦

创业 投资

DataPipeline正式成为信创工委会会员单位!致力于为世界级用户提供更优质产品和服务

DataPipeline数见科技

大数据 数据融合 数据管理

Linux安装与常用命令

IT视界

Linux linux命令 Linux安装

关于程序猿的28个经典段子

海归硕士程序员吐槽:回国一个月都没找到工作,我书都白读了?

毕业总结

菲尼克斯

架构实战营

架构之:REST和HATEOAS

程序那些事

架构 系统架构 Rest 软件架构

程序员是如何看待程序员的,程序员是做什么的?

程序员没两把刷子,就别送外卖了!!!

阿里大佬的「算法界Offer收割机」火爆Github,一夜获上万star

Java 编程 程序员 架构师 计算机

Visual Studio的语言服务器协议_语言 & 开发_Jonathan Allen_InfoQ精选文章