Как я могу вызвать редактор editor.edit более одного раза? - PullRequest
0 голосов
/ 12 октября 2019

Я пытаюсь редактировать файл кода несколько раз. Сначала я делаю некоторые базовые форматирования, такие как удаление пустых строк и т. Д. А затем я хочу переформатировать файл в стиле столбца. Если я вызываю команду дважды, это работает. Но это должно сделать это одним способом. Поэтому я думаю, что проблема в команде editor.edit (builder =>. Как я могу вызвать ее дважды? Думаю, это не сработает, если я уже вызывал ее один раз в своем коде?

editor
    .edit(newbuilder => {
        for (let index = 0; index < doc.lineCount; index++) {
            newPos = currentPos.with(index, 0);
            editor.selection = new vscode.Selection(newPos, newPos);
            let reformattedItem = reformatItem();
            if (reformattedItem !== "") {
                let selection = new vscode.Range(newPos, newPos.with(newPos.line, doc.lineAt(newPos.line).text.length));
                newbuilder.replace(selection, reformattedItem);
            }
        }
    })
    .then(success => {
        let pos = new vscode.Position(0, 0);
        editor.selection = new vscode.Selection(pos, pos);
    })
    .then(undefined, err => {
        console.error(err);
    });
...