【发布时间】:2020-11-13 03:39:33
【问题描述】:
我们有一个(内部)VS Code 扩展来实现一种语言的语言服务器协议。我检查了VS Code LS sample 以在服务器上启用调试,但是在示例中,用于初始化LanguageClient 的ServerOptions 始终是一个类型:
{
run: NodeModule;
debug: NodeModule;
}
这里可以将带有端口号的检查参数显式传递给客户端,然后可以用于调试。
在我们的项目中,我们已经在使用ServerOptions 类型的(() => Promise<StreamInfo>) 版本,当然它没有提供一种机制来传递参数来启动服务,并在特定端口进行调试。
为了启动语言服务器,我们稍后调用child_process.spawn(command, args, options) 并带有一些参数来启动服务器进程。这里command 是node,args 是["path/to/server/main.js", "path/to/log/output" ],options 是:
{
"cwd":"path/to/workspace/folder",
"env":{/*various environment propreties, including a hostname, but no port*/}
}
我假设此时我们应该传入一个特定的参数/环境变量以使服务器可调试?我可以在这里传递什么来监听给定端口上的调试器?
注意:我们正在利用 vscode-remote,但我认为这不会影响答案(除了确保使用的端口在远程机器上打开)。
【问题讨论】:
标签: node.js visual-studio-code vscode-extensions vscode-remote