Как выполнить локальный код bash из расширения VSCode

#javascript #bash #typescript #visual-studio-code #vscode-extensions

#javascript #bash #typescript #visual-studio-code #vscode-расширения

Вопрос:

Я создаю расширение для простых команд git, и когда пользователь вводит команду в палитре команд, например, Init , я хочу вызвать git init их текущий каталог.

К сожалению, нет документации по локальному выполнению кода с помощью API расширений VSCode. Есть ли какой-либо способ сделать это?

Ответ №1:

Да, это возможно, используя child_process.spawn. Я использовал его в своем расширении для запуска 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.
}