1

我正在使用 VS Code 的调试适配器协议(版本 1.26.1)实现自定义调试器。调试适配器是用 Java 编写的,并使用LSP4J 0.5.0M1与客户端进行通信。

基本的启动和评估表达式已经有效。我可以在 VS Code 的调试控制台中输入一个表达式并让调试服务器对其进行评估。

现在我想对evaluate请求返回的结果进行着色。例如,无法计算的表达式的错误消息应该以红色打印。

请求是这样发送的:

{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "evaluate",
  "params": {
    "expression": "bad expression",
    "context": "repl"
  }
}

响应看起来像这样,并包含 ANSI 转义码来为输出着色:

{
  "jsonrpc": "2.0",
  "id": 3,
  "result": {
    "result": "\u001b[31mFailed to evaluate expresion\n...\u001b[0m",
    "variablesReference": 0
  }
}

但是,转义码被忽略,调试控制台中的输出如下:

[31mFailed to evaluate expression:
...[0m

已经打开了各种问题,要求 VS Code 支持 ANSI 转义码或报告颜色支持已损坏,其中一些在下面列出

但似乎都解决了。

谁能帮助我找到正确的响应以在调试控制台中显示彩色输出?

4

1 回答 1

1

事实证明,当评估请求的结果显示在调试控制台中时,不会解释 ANSI 颜色代码。

如果要考虑 ANSI 转义码,则需要通过outputevent发送它们。

于 2018-09-10T11:42:11.647 回答