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

时间:2018-08-31 16:34:17

标签: visual-studio-code vscode-extensions vscode-debugger

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

基本启动和评估表达式已经可以使用。我可以在VS Code的 Debug Console 中输入表达式,然后让调试服务器对其进行评估。

现在,我想对<script src="https://rawgit.com/toji/gl-matrix/master/dist/gl-matrix.js"></script> <canvas id="canvas" style="border: none;"></canvas>请求返回的结果进行着色。例如,对于无法计算的表达式错误消息应以红色打印。

请求发送如下:

evaluate

响应如下所示,并包含用于使输出着色的ANSI转义代码:

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

但是,转义码将被忽略,并且 Debug Console 中的输出如下:

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

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

但所有这些似乎都已解决。

有人可以帮助我找到正确的响应以在 Debug Console 中显示彩色输出吗?

1 个答案:

答案 0 :(得分:1)

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

如果应考虑使用ANSI转义码,则需要通过output event发送。