如何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
并使用要打印的文本调用它。
我正在尝试学习如何创建 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
并使用要打印的文本调用它。