问题标签 [language-server-protocol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
179 浏览

spacemacs - 我如何将 cquery 与 spacemacs 一起使用

是否有规范/稳健的方式将 cquery 与 spacemacs 一起使用?我最近从 vim 切换到了 spacemacs,但对 emacs/spacemacs 配置/定制还不是很熟悉。我以前用过 vim 的 cquery。我的项目有一个 compile_commands.json。

0 投票
1 回答
284 浏览

visual-studio-extensions - 如何在 VSIX 扩展中找到打开的文件夹

我想写一个 VSIX LSP 扩展。我希望它以最简单的方式工作——这似乎是使用“打开文件夹”功能打开一个代码文件夹,然后做我的事。

要启动 LSP 服务器,我需要知道打开的文件夹的目录。我如何知道 Visual Studio 是否处于“打开文件夹”模式(如果不是,则不应启动 LSP),以及如何知道该文件夹的路径(以便我可以启动 LSP 服务器)?

我发现https://docs.microsoft.com/en-us/dotnet/api/microsoft.visualstudio.shell.interop.ivssolutionevents7?view=visualstudiosdk-2017这似乎很有希望,因为我可以注册某些特定文件夹已打开 - 告诉我已使用“打开文件夹”功能的事件可能是完美的 - 如果文件夹已打开,则启动该文件夹的 LSP。

0 投票
1 回答
779 浏览

javascript - Visual Studio Code Language Server - 如何验证工作区中的所有文件

我遵循了 Visual Studio 代码中的本教程,了解如何创建语言服务器来验证扩展文件。我继续制作 lsp-sample 项目的副本并让它运行。

在我对这个项目的分析中,我注意到只有工作区中打开或更改的文件被验证。

这对于大多数情况来说都很好,但我认为当工作区打开时,所有文件(无论是否被编辑器打开)都应该经过验证,以便在 vscode 中拥有更丰富的 IDE 体验。

任何有语言服务器协议经验的人都可以帮助我如何做到这一点吗?据我所知,“文档”对象仅填充打开的文件。

非常感谢,里卡多

0 投票
1 回答
508 浏览

visual-studio-code - 远程执行语言服务器时vscode如何处理文件路径

我正在通过我正在开发的扩展程序在 vscode 上运行远程语言服务器。客户端和服务器都可以通过挂载的共享文件夹访问代码。问题是此文件夹位于客户端和服务器上的不同位置。(/home/username/myproject在客户端,/mnt/shared_folder/myproject在服务器上)

我的问题是我可以配置 vscode 语言客户端,以便它将路径从本地位置转换到远程位置,反之亦然?

如果我从带有工作区的项目中运行语言客户端,是否可以对其进行配置,使其发送相对于工作区根目录的文件 URI,而不是发送绝对文件路径?这样做我可以简单地使用共享文件夹挂载点的路径在服务器端重建文件 uri。

我听说过,Middlewares或者uriConverters但我不确定这是否是它们打算用于的目的。

谢谢!

0 投票
1 回答
206 浏览

language-server-protocol - 语言服务器协议中的 Trace 设置是什么意思?

我试图弄清楚trace语言服务器协议中的设置是做什么的。所以根据规范:

初始跟踪设置。如果省略的跟踪被禁用('off')。

但这并不能告诉我太多。它嵌入在InitializeParams界面中:

我在本地使用测试语言服务器对其进行了尝试,但是无论我输入 ( off, messages, verbose) 的值是什么,都没有真正改变。

它实际上是做什么的?

0 投票
1 回答
656 浏览

spring-boot - SpringBoot 从 websocket 获取 InputStream 和 OutputStream

我们想将第三方库(Eclipse XText LSP)集成到我们的 SpringBoot webapp 中。

该库与用户“交互”地工作(如聊天)。XText API 需要输入和输出流才能工作。我们希望使用 WebSocket 让用户与这个库顺利交互(发送/检索 json 消息)。

SpringBoot 存在问题,因为 SpringBoot 对 WebSocket 的支持不公开输入/输出流。我们编写了自定义 TextWebSocketHandler(子类),但没有一个方法提供对输入/输出流的访问。

我们还尝试了 HandshakeInterceptor (在握手后获取输入/输出流)但没有成功。

我们可以在这种情况下使用 SpringBoot WebSocket API 还是应该使用一些较低级别的(Servlet?)API?

问候丹尼尔

0 投票
1 回答
85 浏览

node.js - 当 VSCode 扩展处于活动状态时运行节点脚本

我正在使用 LSP(语言服务器协议)开发一个 VSCode 扩展,只要用户打开扩展名为“.ext”的文件,它就会被激活。它具有以下结构:

LSP 结构

我已经在使用 VSCode 的语言客户端/服务器库,并且语言验证包含在本地部署在随机空闲端口上的 Web 服务器上,该端口包含接收用户正在修改的文件的内容的 ANTLR4 类。分析此内容后,它通过 HTTP 向语言服务器部分发送响应,其中包含有关接收到的代码片段的诊断信息。然后,服务器将调整后的诊断信息发送给客户端,以便 VSCode 使用它们来通知用户错误。

扩展工作正常,但每当我想使用扩展(用 Node.js 编写)时,我都必须手动运行语言验证服务器。有没有办法在激活扩展时自动启动该节点服务器?

提前致谢。

0 投票
0 回答
250 浏览

python - 我们可以扩展 Visual Studio Code 中的现有扩展吗?

我正在研究 Visual Studio Code 扩展。我想为 Visual Studio Code 的 Microsoft Python 扩展code complete(IntelliSense)添加更多项目

我不知道怎么做。我只是想出了一些解决方案:
1. 为现有的扩展编写一个新的扩展vscode-python来自定义code complete项目。
-> 我们可以为现有的扩展写一个扩展吗?
2. 编写一个新的扩展来适应 Visual Studio Code 编辑器与vscode-python. 在此,我将转发/自定义来自编辑器的请求vscode-python,然后自定义/插入我的项目到响应,然后返回给编辑器。

我正在研究 VSCode 扩展,所以我不知道哪个解决方案是可以实现的。你能帮助我或给我一些关于另一种解决方案的提示吗?

0 投票
1 回答
3012 浏览

javascript - Vscode 语言客户端扩展 - 如何从服务器向客户端发送消息?

我一直在使用语言服务器协议开发一个由客户端和服务器组成的 vscode 扩展。

目前,我正在尝试做以下事情:当服务器检测到某个条件时,他请求客户端将一定数量的文件加载到工作区中。

我在这样做时遇到了严重的问题。由于语言服务器协议没有执行此操作的特定请求,因此我考虑从服务器向客户端发送消息,一旦客户端检测到此消息,他将继续执行此命令。

问题是,我也不知道该怎么做。谁能帮帮我吗?

0 投票
1 回答
250 浏览

python - VSCode 的 vscode-python 扩展是语言服务还是只是扩展?

我想为 VSCode 编写一个扩展,以重用vscode-python扩展的重构/重命名功能。这样,当用户执行我的命令时,我的扩展程序将对 .py 文件的变量进行重命名。我不知道vscode-python它只是一个扩展还是它正在实现语言服务器协议 LSP。以及我如何调用vscode-python. 你能给我一些提示吗?非常感谢你!