Javascript vscode扩展开发:vscode.EventEmitter fire添加额外空间
我正在vscode扩展中执行命令,例如commandJavascript vscode扩展开发:vscode.EventEmitter fire添加额外空间,javascript,typescript,visual-studio-code,vscode-extensions,Javascript,Typescript,Visual Studio Code,Vscode Extensions,我正在vscode扩展中执行命令,例如commandbrew search git import * as cp from 'child_process'; import * as workspace from './util/workspace'; const util = require('util'); const exec = util.promisify(cp.exec); // Execute a given command and returns result as strin
brew search git
import * as cp from 'child_process';
import * as workspace from './util/workspace';
const util = require('util');
const exec = util.promisify(cp.exec);
// Execute a given command and returns result as string or error
async function execute(cmd: string): Promise<string | Error> {
let path = workspace.getWorkspacePath();
const { stdout, stderr } = await exec(cmd, { cwd: path });
if (stderr) { return new Error(stderr); }
return stdout;
}
如何使终端在不增加额外空间的情况下打印输出
export default class CustomTaskTerminal implements vscode.Pseudoterminal {
private writeEmitter = new vscode.EventEmitter<string>();
onDidWrite: vscode.Event<string> = this.writeEmitter.event;
private closeEmitter = new vscode.EventEmitter<number>();
onDidClose?: vscode.Event<number> = this.closeEmitter.event;
constructor() { }
open(initialDimensions: vscode.TerminalDimensions | undefined): void {
this.runCustomTask();
}
close(): void { }
fireWrite(data: string): void {
this.writeEmitter.fire(data + '\n');
}
fireClose(data: number): void {
this.closeEmitter.fire(data);
}
private async runCustomTask(): Promise<void> {
var self = this;
var ex = execute('brew search git')
ex.then(function(res){
if (typeof res === 'string') {
self.fireWrite(res);
self.fireClose(1);
}
}).catch(function(err) {
self.fireWrite(err);
self.fireClose(0);
return;
})
}
}