Следуя этому вопросу, у меня есть еще один вопрос о том, как реализовать метод provideTasks
метода registerTaskProvider
.
Использование расширения npm в качестве примера Я попытался реализовать базовую функцию, чтобы просто вернуть одну жестко закодированную задачу. Затем это будет расширено для фактического анализа файла, готового для добавления динамических задач. Однако мне не удалось заставить это работать.
Код, который я пытаюсь:
vscode.workspace.findFiles('**/*.cake').then((files) => {
if (files.length === 0) {
return emptyTasks;
}
try {
const result: vscode.Task[] = [];
result.push(new vscode.Task({type: 'cake', script: 'NuGet-Restore'} as CakeTaskDefinition, 'Nuget-Restore', 'cake', new vscode.ShellExecution('npm install'), []));
console.log(result);
return Promise.resolve(result);
} catch (e) {
return Promise.resolve(emptyTasks);
}
});
Несмотря на то, что я вижу, что результат содержит задачу, я не вижу ее заполнения в раскрывающемся списке задач.
Может ли кто-нибудь предложить какую-либо помощь в том, почему это не работает?
Репозиторий с текущим кодом можно найти здесь.
ОБНОВЛЕНИЕ
Я только что отредактировал приведенный выше код следующим образом:
try {
const result: vscode.Task[] = [];
result.push(new vscode.Task({ type: 'cake', script: 'NuGet-Restore' } as CakeTaskDefinition, 'Nuget-Restore', 'cake', new vscode.ShellExecution('npm install'), []));
console.log(result);
return Promise.resolve(result);
} catch (e) {
return Promise.resolve(emptyTasks);
}
Не включая начальную функцию findFiles
, он правильно заполняет меню задач одной жестко запрограммированной задачей. Почему я не могу выполнить возврат из метода findFiles? Теперь я подозреваю, что это проблема с TypeScript/JavaScript, а не с функцией provideTasks
, но я все еще ищу помощи по этому поводу.
Каков рекомендуемый подход к тому, что я пытаюсь сделать? Заранее спасибо!