Цвета консоли отладки кода Visual Studio?

Есть ли способ отображать цвета (как в терминале) в консоли отладки кода Visual Studio (версия 1.10.2) при отладке кода node.js?


person Gyuri    schedule 20.04.2017    source источник


Ответы (9)


Я думаю, что пока лучший способ - поместить выходные данные отладки в альтернативные места назначения:

В атрибутах конфигурации запуска параметр console может иметь одно из следующих значений: internalConsole (по умолчанию, встроенная консоль отладки) externalTerminal (внешнее окно cmd) или integratedTerminal (терминал VS Code).

Командная строка внешнего терминала может быть дополнительно указана в настройках кода VS в одном из следующих вариантов: terminal.external.windowsExec, terminal.external.osxExec и terminal.external.linuxExec по умолчанию, который является вашим терминалом операционной системы по умолчанию.

Источник: документы VS Code, например для node.js: https://code.visualstudio.com/docs/nodejs/nodejs-debugging#_launch-configuration-attributes

person Gyuri    schedule 25.05.2017
comment
externalTerminal также отображает это без цвета при использовании функции отладки расширения Jest. - person Norfeldt; 26.10.2019

Для вывода цветных сообщений из nodejs в Visual Studio вы можете использовать форматированное сообщение в методе console.log. Например :

console.log('\u001b[' + 32 + 'm' + 'hello stack' + '\u001b[0m')

как реализовано в Mocha. 32 - это цветовой код. Другие цветовые коды и образец использования вы можете найти в их репозитории:

введите описание изображения здесь

Или в качестве библиотеки журналов вы можете использовать, например, pinojs + pino-pretty, и вывод вашего журнала будет отображаться следующим образом:

введите описание изображения здесь

person Nigrimmist    schedule 03.04.2019
comment
Также работает для java: System.out.println (\ u001b [32mhello stack \ u001b [0m); = ›Цвета в терминале. - person dr0i; 08.10.2020

Для достижения наилучших результатов также не открывайте консоль. Вот моя конфигурация для отладки текущего файла с помощью Jest:

{
    "type": "node",
    "request": "launch",
    "name": "Jest Test (current)",
    "program": "${workspaceFolder}/node_modules/.bin/jest",
    "args": [
        "--config=jest.config.json",
        "--runInBand",
        "${relativeFile}",
    ],
    // The vscode console does not support colors used by Jest output
    "console": "integratedTerminal",
    "internalConsoleOptions": "neverOpen",
}
person Scott Nedderman    schedule 28.08.2018

v1.45 добавляет набор цветов темы отладки, см. https://github.com/microsoft/vscode-docs/blob/vnext/release-notes/v1_45.md#new-debug-theme-цвета

debugView.exceptionLabelForeground: цвет переднего плана для метки, отображаемой в представлении СТЕК ВЫЗОВОВ, когда отладчик прерывает работу при возникновении исключения.

  • debugView.exceptionLabelBackground: Цвет фона для метки, отображаемой в представлении СТЕК ВЫЗОВОВ, когда отладчик прерывает работу при возникновении исключения.

  • debugView.stateLabelForeground: цвет переднего плана для метки в представлении СТЕК ВЫЗОВОВ, показывающий состояние текущего сеанса или потока.

  • debugView.stateLabelBackground: Цвет фона для метки в представлении СТЕК ВЫЗОВОВ, показывающий состояние текущего сеанса или потока.

  • debugView.valueChangedHighlight: Цвет, используемый для выделения изменений значений в представлениях отладки (т. Е. В представлении переменных)

  • debugTokenExpression.name: Цвет переднего плана для имен токенов, отображаемых в представлениях отладки (т. Е. В представлении «Переменные» или «Наблюдение»).

  • debugTokenExpression.value: цвет переднего плана для значений токена, отображаемых в представлениях отладки

  • debugTokenExpression.string: Цвет переднего плана для строк в представлениях отладки

  • debugTokenExpression.boolean: Цвет переднего плана для логических значений в представлениях отладки

  • debugTokenExpression.number: Цвет переднего плана для чисел в представлениях отладки

  • debugTokenExpression.error: Цвет переднего плана для ошибок выражений в представлениях отладки


А в версии 1.46 (примечания к выпуску v1.46), добавляются некоторые тематические элементы консоли отладки:

  • debugConsole.infoForeground: Цвет переднего плана для информационных сообщений в консоли отладки
  • debugConsole.warningForeground: цвет переднего плана для предупреждающих сообщений в консоли отладки
  • debugConsole.errorForeground: Цвет переднего плана для сообщений об ошибках в консоли отладки
  • debugConsole.sourceForeground: Цвет переднего плана для имен исходных файлов в консоли отладки
  • debugConsoleInputIcon.foreground: Цвет переднего плана для значка маркера ввода консоли отладки

Специально для встроенных значений, отображаемых во время отладки (не в консоли отладки, а для значений переменных, отображаемых в конце строк в коде), в v1.57 добавлена ​​пара новых цветов:

В тему встроенных значений добавлены новые цвета:

  • editor.inlineValuesBackground: цвет текста переднего плана встроенного значения отладки
  • editor.inlineValuesForeground: цвет фона встроенного значения отладки.

В качестве напоминания встроенные значения отображаются во время отладки для расширений отладки, в которых зарегистрированы встроенные поставщики значений, или если параметр debug.inlineValues равен true.

person Mark    schedule 30.04.2020
comment
А для фона нет ничего? Я не вижу, что выделяю. Есть ли способ изменить цвет выделения? - person Michael Tolsma; 18.11.2020

Моя настройка, цветные шаги:

Я думаю, что основным атрибутом цвета здесь является --format=node_modules/cucumber-pretty

{
// Use IntelliSense to learn about possible Node.js debug attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [

    {
        "type": "node",
        "request": "launch",
        "console": "integratedTerminal",
        "name": "Cucumber",
        "program": "${workspaceFolder}/tests/cucumberjs/node_modules/cucumber/bin/cucumber-js",
        "cwd": "${workspaceFolder}/tests/cucumberjs",
        "args": [
            "--tags=@luke",
            "--format=node_modules/cucumber-pretty"
        ]
    }
]

}

person Luke Bennett    schedule 05.04.2019
comment
И, очевидно, при использовании "console": "integratedTerminal" это избыточно (не имеет никакого эффекта) "outputCapture": "std" - person Evgeny; 09.02.2020
comment
Да, похоже, это правда, поэтому я удалил его из примера конфигурации - person Luke Bennett; 25.02.2020

Добавление аргумента --colors сработало для меня. (Я использую шутку).

{
  "version": "0.2.0",
  "configurations": [{
    "type": "node",
    "name": "vscode-jest-tests",
    "request": "launch",
    "args": ["--colors"],
    "runtimeArgs": [
      "--inspect-brk",
      "${workspaceRoot}/node_modules/.bin/jest",
      "--runInBand"
    ],
    "cwd": "${workspaceFolder}",
    "console": "integratedTerminal",
    "internalConsoleOptions": "neverOpen",
    "port": 9229
  }]
}
person csalazar    schedule 29.08.2020
comment
У меня это тоже сработало. - person Monarch Wadia; 26.05.2021

Попробуйте использовать пакет цветов от npm. Он очень прост в использовании, и вы также можете использовать такие функции, как полужирный шрифт и подчеркивание. Вот URL-адрес документации: - https://www.npmjs.com/package/colors

person Krishna Saxena    schedule 10.11.2020

Действительно быстро и грязно для консоли Java от Java-новичка:

private static void debugLog(String msg) {
  if (msg.indexOf("Exception") > -1) {
    System.out.println("\u001b[31m" + msg + "\u001b[0m");
  } else {
    System.out.println("\u001b[32m" + msg + "\u001b[0m");
  }
}
person Murrah    schedule 20.11.2020

Дополнительные сведения см. В @ https://stackoverflow.com/a/55493884/3645650.

Вот просто ответ без ума.

Versions
Tested up to Visual Studio Code May 2021 (version 1.57)

Текст

console.log( "\u001b[1;31m Red message" );
console.log( "\u001b[1;32m Green message" );
console.log( "\u001b[1;33m Yellow message" );
console.log( "\u001b[1;34m Blue message" );
console.log( "\u001b[1;35m Purple message" );
console.log( "\u001b[1;36m Cyan message" );

Задний план

console.log( "\u001b[1;41m Red background" );
console.log( "\u001b[1;42m Green background" );
console.log( "\u001b[1;43m Yellow background" );
console.log( "\u001b[1;44m Blue background" );
console.log( "\u001b[1;45m Purple background" );
console.log( "\u001b[1;46m Cyan background" );

Чтобы сбросить каждый стиль, вам необходимо применить следующее:

console.log( "\u001b[0m Reset text and background color/style to default" );

Пример

console.log( "\u001b[1;31m --process: Error" + "\u001b[0m" );
person amarinediary    schedule 25.06.2021