VS Code Extension API - заменить строку в документе? - PullRequest
0 голосов
/ 19 июня 2020
const textEditor = vscode.window.activeTextEditor;

        if (!textEditor) {
            return;  // No open text editor
        }

        for(var i=0;i<textEditor.document.lineCount;i++)
        {
            var textLine = textEditor.document.lineAt(i);
            for(var j=textLine.range.start.character;j<=textLine.range.end.character;j++)
            {
                var startposition = new vscode.Position(i,j);
                var endposition = new vscode.Position(i,j+1);
                var range = new vscode.Range(startposition,endposition);
                var text = textEditor.document.getText(range);
                if(text === "\'"){
                    textEditor.edit(editBuilder => editBuilder.replace(range,"\""));
                }
            }
        }

Мне нужно заменить все одинарные кавычки на двойные. Но случается, что textEditor.edit(editBuilder => editBuilder.replace(range,"\"")); выполняется только один раз. Я имею в виду, что он заменяет только 1-е вхождение, но мне нужно заменить все вхождения в документе. Я не знаю, почему эта строка не выполняется для каждого l oop.

Заранее спасибо.

...