如何判断VSCode语言扩展是否运行及进行日志/调试?
VSCode Language Server 调试与日志问题解决方案
一、确认扩展是否运行
- 打开VSCode「扩展」面板(Ctrl+Shift+X),搜索你的扩展名称,确认处于启用状态
- 打开命令面板(Ctrl+Shift+P),执行
Developer: Show Running Extensions,在列表中查找你的扩展,验证是否在运行 - 检查根目录
package.json的activationEvents字段:LSP扩展需配置正确的激活触发条件,比如onLanguage:你的语言ID或onCommand:自定义命令,确保与场景匹配,否则扩展可能无法启动
二、日志输出与查看位置
Client 端日志
- 放弃
client.info(),直接使用VSCode内置的console.log():输出会显示在「输出」面板(Ctrl+Shift+U),需在面板顶部下拉菜单中选择你的扩展名称或「Language Server Client」相关通道 - 弹窗测试(类似浏览器
alert):使用vscode.window.showInformationMessage('测试内容'),会直接在VSCode界面弹出提示框,直观验证代码是否执行
Server 端日志
- 在client初始化
LanguageClient时,配置trace: 'verbose'参数,或启用traceOutputChannel,server端的日志会输出到指定的「输出」面板通道 - 打开「输出」面板,选择对应的Language Server通道,即可查看server端的执行日志,包括补全逻辑的运行情况
三、调试运行状态
Client 端调试
- 切换到「运行和调试」面板(Ctrl+Shift+D),选择「Launch Extension」配置(无配置时VSCode会自动生成)
- 点击启动调试,会打开「扩展开发宿主」窗口
- 在原项目窗口的
extension.ts中设置断点,在宿主窗口触发扩展激活操作(如打开你的语言文件),即可进入断点调试
Server 端调试
- 在client的
serverOptions中配置调试模式,指定调试端口(如port: 6009) - 在「运行和调试」面板添加「Attach to Language Server」配置,指定对应端口
- 先启动「Launch Extension」调试,再启动附加调试,即可断点调试server端的补全逻辑代码
四、常见遗漏点排查
- 检查TypeScript编译状态:查看「问题」面板(Ctrl+Shift+M),确认
client/out/extension.js和server/out/server.js编译成功,无语法错误 - 验证client与server的连接配置:确保
serverOptions中指定的server入口路径正确指向编译后的out/server.js - 检查补全逻辑触发条件:server端是否正确注册
completionProvider,触发字符(如.)或文档范围是否配置合理,确保满足补全触发条件
内容的提问来源于stack exchange,提问作者Lance Pollard
相关产品推荐
相关产品推荐

