如何create/write到一个输出通道只执行一次?

How to create/write to a output channel only once?

我正在尝试学习如何创建 vscode 扩展程序

有一个函数可以将一些文本打印到控制台,但是每次该函数 被调用,它创建一个新的输出通道:

const channel = vscode.window.createOutputChannel("debug");
channel.show();
console.log("test");

我该如何避免呢?我的意思是,只创建一次频道。

与要在 JS/TS 项目中共享的任何其他部分一样,您必须将其导出。在我的 extension.ts 中,我在 activate 函数中创建了输出通道,并提供了一个导出的打印函数来访问它:

let outputChannel: OutputChannel;

export const activate = (context: ExtensionContext): void => {
    outputChannel = window.createOutputChannel("My Extension");
...
}

/**
 * Prints the given content on the output channel.
 *
 * @param content The content to be printed.
 * @param reveal Whether the output channel should be revealed.
 */
export const printChannelOutput = (content: string, reveal = false): void => {
    outputChannel.appendLine(content);
    if (reveal) {
        outputChannel.show(true);
    }
};

现在您可以在任何扩展文件中导入 printChannelOutput 并使用要打印的文本调用它。