I'm trying to learn how to create a vscode extension
theres a function that im printing some text to console, however each time the function is called, it creates a new output channel:
const channel = vscode.window.createOutputChannel("debug");
channel.show();
console.log("test");
how i could avoid it? I mean, create the channel only once.
Like with any other part you want to share in a JS/TS project, you have to export it. In my extension.ts I created the output channel in the activate
function and provide an exported print function to access it:
import * as vscode from 'vscode';
let outputChannel: vscode.OutputChannel;
export const activate = (context: vscode.ExtensionContext): void => {
outputChannel = vscode.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);
}
};
Now you can import printChannelOutput
in any of your extension files and call it with the text you want to print.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With