У меня проблема при попытке сыграть с debug api
из vscode
.Вот код, который я использую:
const vscode = require('vscode');
function activate(context) {
console.log('Congratulations, your extension "helloworld" is now active!');
let disposable = vscode.commands.registerCommand('extension.helloWorld', function () {
// Display a message box to the user
vscode.window.showInformationMessage('Hello World!'); // This works
const session = vscode.debug.activeDebugSession;
console.log(session); // returns undefined
// I have tried this one, and no text is shown
vscode.debug.activeDebugConsole.append("Hello from Debug Console");
if (session) {
session.customRequest("evaluate", {
"expression": "Math.sqrt(10)"
}).then(reply => {
vscode.window.showInformationMessage(`result: ${reply.result}`);
}, error => {
vscode.window.showInformationMessage(`error: ${error.message}`);
});
}
});
context.subscriptions.push(disposable);
}
exports.activate = activate;
function deactivate() {}
module.exports = {
activate,
deactivate
}
Чтобы попробовать это, я сделал следующие шаги:
- создал простое расширение
"Hello World"
с yeoman. - заменил
extension.js
на приведенный выше код. - нажал F5 , чтобы запустить (и отладить) расширение.
- в новом окне открылся простой файл node.jsprogram.
- нажал F5 для отладки простой программы.
- нажал F1 , набрал «Hello» и запустил расширение «Hello World».
Но const session = vscode.debug.activeDebugSession;
возвращает undefined
.
Также vscode.debug.activeDebugConsole.append("Hello from Debug Console");
ничего не показывает.
Я знаю, что , если нет активной отладкисеанс , код сверху не будет работать должным образом.Итак:
Правильно ли активен сеанс отладки?Что я тут не так делаю?