Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/src/util.ts')
| -rw-r--r-- | editors/code/src/util.ts | 48 |
1 files changed, 47 insertions, 1 deletions
diff --git a/editors/code/src/util.ts b/editors/code/src/util.ts index cd91932bb6..d93b9caeb1 100644 --- a/editors/code/src/util.ts +++ b/editors/code/src/util.ts @@ -117,7 +117,7 @@ export function isValidExecutable(path: string): boolean { const res = spawnSync(path, ["--version"], { encoding: "utf8" }); - const printOutput = res.error && (res.error as any).code !== "ENOENT" ? log.warn : log.debug; + const printOutput = res.error ? log.warn : log.info; printOutput(path, "--version:", res); return res.status === 0; @@ -166,3 +166,49 @@ export function execute(command: string, options: ExecOptions): Promise<string> }); }); } + +export class LazyOutputChannel implements vscode.OutputChannel { + constructor(name: string) { + this.name = name; + } + + name: string; + _channel: vscode.OutputChannel | undefined; + + get channel(): vscode.OutputChannel { + if (!this._channel) { + this._channel = vscode.window.createOutputChannel(this.name); + } + return this._channel; + } + + append(value: string): void { + this.channel.append(value); + } + appendLine(value: string): void { + this.channel.appendLine(value); + } + replace(value: string): void { + this.channel.replace(value); + } + clear(): void { + if (this._channel) { + this._channel.clear(); + } + } + show(preserveFocus?: boolean): void; + show(column?: vscode.ViewColumn, preserveFocus?: boolean): void; + show(column?: any, preserveFocus?: any): void { + this.channel.show(column, preserveFocus); + } + hide(): void { + if (this._channel) { + this._channel.hide(); + } + } + dispose(): void { + if (this._channel) { + this._channel.dispose(); + } + } +} |