如何在Visual Studio Code中启用语言服务器日志记录

14
语言服务器扩展指南中提到:

"如果您正在使用vscode-languageclient实现客户端,您可以指定设置[langId].trace.server,以指示客户端将语言客户端/服务器之间的通信记录到语言客户端的一个通道中的name。"

"对于lsp-sample,您可以设置此设置:"languageServerExample.trace.server": "verbose"。现在前往频道“Language Server Example”。您应该会看到日志:

logs

我应该在VS Code中的哪个位置和如何指定此设置?

4个回答

5

找到它了!

您需要在 launch.json 中创建一个新的 Node.js Attach 运行配置。

enter image description here

{
    "name": "Attach",
    "port": 6009,
    "request": "attach",
    "skipFiles": [
        "<node_internals>/**"
    ],
    "type": "pwa-node"
},

将端口从默认的9229更改为6009。在实例化new LanguageClient()时,您还需要在ServerOptions中传递此6009端口:

enter image description here

之后,当你使用F5启动你的插件时,你现在可以进入运行视图,并且在你的客户端进程旁边运行新创建的“附加”配置:

enter image description here

当两个进程都在运行时,您可以在“调用堆栈”部分之间切换,以查看您的客户端console.log或您的语言服务器的内容。

enter image description here

当然,像往常一样,在发布赏金后...

2
我对php语言服务器所做的事情是在launch.json文件中添加"log": true,然后编译器将尝试在按下f5开始调试时显示日志。但从您在问题中分享的文档中我所理解的是,您可以按照以下说明操作(我不能保证这会起作用,因为这是针对您在问题中分享的内容的说明):
  • 按下Ctrl+逗号
  • 搜索"trace server"
  • 现在应该列出语言。如果您使用的是最新版本的vscode,请选择任何语言服务器中的详细信息。
  • 如果您使用的是旧版vscode,则选择要使用的语言旁边的铅笔按钮,并选择"verbose"

5
非常感谢您的帮助。您知道我如何查看在服务器中执行的console.log()语句的输出吗?它们似乎不会在输出中显示。 - Itachinome

0

在新打开的 VS Code 实例的工作区设置中更改,标题为 [Extension Development Host],而不是原始的 VS Code。


1
如果您能提供更具体的信息,比如在名为“blah.txt”的文件中更改此处...那就太好了。否则,您的回答只会帮助少数人。 - Alejandro González

0

你也可以在 package.json 文件中更改默认值:

"languageServerExample.trace.server": {
                    "scope": "window",
                    "type": "string",
                    "enum": ["off","messages","verbose"],
                    "default": "verbose",

2
这是仅针对客户端文件夹的 package.json,还是在根文件夹(lsp-sample)中的 package.json? - Rob Hinchliff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接