无法为发送到 VS Code 调试控制台的输出着色

Cannot colorize output sent to debug console of VS Code

我正在使用 debug adapter protocol for VS Code (version 1.26.1). The debug adapter is written in Java and uses 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 转义码或报告颜色支持已损坏,下面列出了其中一些

不过好像都解决了。

任何人都可以帮助我找到正确的响应以在 调试控制台 中显示彩色输出吗?

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

如果要考虑 ANSI 转义码,则需要通过 output event.

发送它们