如何从VSCode扩展执行本地bash代码

问题描述 投票:0回答:1

我正在为简单的git命令创建扩展,当用户在命令选项板中输入命令时,如Init,我想在当前目录中调用git init

遗憾的是,没有关于使用VSCode扩展API在本地执行代码的文档。有没有办法做到这一点?

javascript bash typescript visual-studio-code vscode-extensions
1个回答
2
投票

是的,这可以通过使用child_process.spawn来实现。我用过它in my extension to run a Java jar。执行的核心如下所示:

let spawnOptions = { cwd: options.baseDir ? options.baseDir : undefined };
let java = child_process.spawn("java", parameters, spawnOptions);

let buffer = "";
java.stderr.on("data", (data) => {
    let text = data.toString();
    if (text.startsWith("Picked up _JAVA_OPTIONS:")) {
        let endOfInfo = text.indexOf("\n");
        if (endOfInfo == -1) {
            text = "";
        } else {
            text = text.substr(endOfInfo + 1, text.length);
        }
    }

    if (text.length > 0) {
        buffer += "\n" + text;
    }
});

java.on("close", (code) => {
    // Handle the result + errors (i.e. the text in "buffer") here.
}
© www.soinside.com 2019 - 2024. All rights reserved.