繼續從這個question我有另一個關於如何實現registerTaskProvider
的provideTasks
方法的問題。無法從provideTasks函數添加任務
使用npm擴展作爲example我試圖實現一個基本功能,以簡單地返回一個硬編碼的任務。這將被擴展到實際解析文件,準備添加動態任務。但是,我一直無法得到這個工作。
我在努力的代碼是:即使
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);
}
});
我可以看到,結果包含一個任務,我沒有看到它在任務填充下拉列表。
任何人都可以提供任何幫助,爲什麼這是行不通的?
包含當前代碼的存儲庫可以找到here。
UPDATE
我剛編輯上面的代碼如下所示:
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
函數,但我仍然在尋找一些幫助。
什麼是我正在嘗試做的建議方法?提前致謝!
謝謝,那正是問題所在! –