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

里卡多·费雷拉·达席尔瓦

我一直在开发一个vscode扩展,它使用语言服务器协议来构成客户端和服务器。

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

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

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

Gama11

只要您确定名称不与现有LSP方法冲突,就可以定义自己的任意方法。例如,在官方的lsp-sample中,您可以这样做:

(末尾client/src/extension.ts

let client = new LanguageClient('lspSample', 'Language Server Example', serverOptions, clientOptions);
client.onReady().then(() => {
    client.onNotification("custom/loadFiles", (files: Array<String>) => {
        console.log("loading files " + files);
    });
});
context.subscriptions.push(client.start());

(以的documents.onDidChangeContent听众server/src/server.ts

var files = ["path/to/file/a.txt", "path/to/file/b.txt"];
connection.sendNotification("custom/loadFiles", [files]);

每当您更改.txt文件内容时(由于该示例plaintext用作其文档选择器),这会将以下内容输出到开发控制台

正在加载文件path / to / file / a.txt,path / to / file / b.txt

当涉及到自定义方法的名称,它们的参数或调用它们时,您几乎完全具有灵活性。对于语言服务器,出于各种目的(高级功能,内部调试/开发功能等)而使用的自定义方法(不属于协议的一部分)是很常见的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从客户端向服务器发送对象

Spring Integration和TCP服务器套接字-如何向客户端发送消息?

向所有客户端发送消息(客户端-服务器通信)

从客户端向服务器发送图像

如何使用STOMP从Spring WebSocket服务器向WebSocket客户端发送消息?

从客户端向服务器发送大量数据

无法对允许向服务器发送文本消息的客户端进行编程

Java如何使服务器向连接的每个客户端发送消息

在ASP.NET Core SignalR中,如何从服务器向客户端发送消息?

如何从服务器向客户端发送消息

如何使用Java RMI从服务器向客户端发送消息?

如何从服务器向客户端发送更新?

如何从Flask服务器(Python)向HTML客户端发送消息?

如果客户端被强制销毁,则向服务器发送消息

无法通过Netty从服务器向客户端发送消息

向/从客户端/服务器发送对象

使用Java Websockets客户端向服务器发送多条消息?

服务器向客户端发送消息

从Node JS Socket客户端向MINA套接字服务器发送消息

从服务器向所有客户端发送消息

如何使用端口从服务器向客户端发送消息?

从Android客户端向Java服务器发送消息

从服务器向 websocket 客户端发送消息

Thrift:向所有连接到服务器的客户端发送消息

从 NodeJS 服务器向 Web 客户端发送消息

如何从Qt中的服务器向连接的客户端发送消息

socket.io 客户端无法向服务器发送消息

如何从 Python 服务器向 Java 客户端发送消息

两个客户端在java中向服务器发送消息