如何更改 VS Code 任务的状态? (VS Code扩展开发)
How to change a VS Code task's status ? (VS Code extension development)
我正在开发 VS Code 扩展,我的扩展中有一个自定义任务。在最近对 VS Code 进行更新之前,一切都运行良好。该任务现在的状态似乎如下图所示:
在终端/任务中 window,它显示“任务有错误”并且任务颜色为红色。但实际上我的任务执行正确。我记得这个'status'以前是不存在的。有谁知道如何清除此状态或如何修改它?在VS Code官方文档中没有找到相关的API或者命令。能帮忙指导一下吗?
这是我的任务设置('targets'是自定义的属性):
{
"version": "2.0.0",
"tasks": [
{
"type": "basiccompile",
"targets": ["TEST_FILE"],
"label": "basiccompile",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
非常感谢!
Task status on terminal tab
The status of a task is now shown in its terminal tab. For background tasks, the status is only shown when there is an associated problem matcher.
要调整关联的问题匹配器,请参阅Modifying an existing problem matcher。
我找到了解决办法。根据task-provider的最新示例,在发出关闭事件时,可以将0传递给fire(),那么状态就是成功。
class CustomBuildTaskTerminal implements vscode.Pseudoterminal {
// ...
private closeEmitter = new vscode.EventEmitter<number>();
onDidClose?: vscode.Event<number> = this.closeEmitter.event;
// ...
open(initialDimensions: vscode.TerminalDimensions | undefined): void {
// ...
this.closeEmitter.fire(0);
}
这是来自 VS code 的官方示例:
https://github.com/microsoft/vscode-extension-samples/blob/b7d400880ac08100bd168a22b70d217e6abfd6b9/task-provider-sample/src/customTaskProvider.ts#L129
我正在开发 VS Code 扩展,我的扩展中有一个自定义任务。在最近对 VS Code 进行更新之前,一切都运行良好。该任务现在的状态似乎如下图所示:
在终端/任务中 window,它显示“任务有错误”并且任务颜色为红色。但实际上我的任务执行正确。我记得这个'status'以前是不存在的。有谁知道如何清除此状态或如何修改它?在VS Code官方文档中没有找到相关的API或者命令。能帮忙指导一下吗?
这是我的任务设置('targets'是自定义的属性):
{
"version": "2.0.0",
"tasks": [
{
"type": "basiccompile",
"targets": ["TEST_FILE"],
"label": "basiccompile",
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
非常感谢!
Task status on terminal tab
The status of a task is now shown in its terminal tab. For background tasks, the status is only shown when there is an associated problem matcher.
要调整关联的问题匹配器,请参阅Modifying an existing problem matcher。
我找到了解决办法。根据task-provider的最新示例,在发出关闭事件时,可以将0传递给fire(),那么状态就是成功。
class CustomBuildTaskTerminal implements vscode.Pseudoterminal {
// ...
private closeEmitter = new vscode.EventEmitter<number>();
onDidClose?: vscode.Event<number> = this.closeEmitter.event;
// ...
open(initialDimensions: vscode.TerminalDimensions | undefined): void {
// ...
this.closeEmitter.fire(0);
}
这是来自 VS code 的官方示例: https://github.com/microsoft/vscode-extension-samples/blob/b7d400880ac08100bd168a22b70d217e6abfd6b9/task-provider-sample/src/customTaskProvider.ts#L129