如何更改 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
            }
        }
    ]
}

非常感谢!

引自v1.57 release note

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