Невозможно раскрасить вывод, отправленный на консоль отладки кода VS - PullRequest
0 голосов
/ 31 августа 2018

Я реализую пользовательский отладчик, используя протокол адаптера отладки для кода VS (версия 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
  }
}

Однако коды перехода игнорируются, и вывод в Debug Console выглядит следующим образом:

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

Были открыты различные проблемы с запросом VS Code о поддержке escape-кодов ANSI или сообщением о нарушении поддержки цвета, некоторые из них перечислены ниже

Но все они, похоже, решены.

Может ли кто-нибудь помочь мне найти правильный ответ для цветного вывода в Консоль отладки ?

1 Ответ

0 голосов
/ 10 сентября 2018

Как оказалось, коды цвета ANSI не интерпретируются, когда результат запроса оценки отображается в консоли отладки.

Если необходимо учитывать управляющие коды ANSI, их необходимо отправить через событие output .

...