2017-07-20 47 views
1

我還沒有找到一個好方法來做到這一點。我目前的做法是首先選擇全部:VS代碼擴展Api獲取文檔整個文本的範圍?

vscode.commands.executeCommand("editor.action.selectAll").then(() =>{ 
    textEditor.edit(editBuilder => editBuilder.replace(textEditor.selection, code)); 
    vscode.commands.executeCommand("cursorMove", {"to": "viewPortTop"}); 
}); 

這是不理想的,因爲它在選擇和替換時閃爍。

回答

2

這可能不可靠的,但我一直在使用這樣的:

var firstLine = textEditor.document.lineAt(0); 
var lastLine = textEditor.document.lineAt(textEditor.document.lineCount - 1); 
var textRange = new vscode.Range(0, 
           firstLine.range.start.character, 
           textEditor.document.lineCount - 1, 
           lastLine.range.end.character); 
+0

謝謝!這比選擇全部然後從選擇中獲得範圍要好。 –

0

更短的例子:

const fullText = document.getText() 

const fullRange = new vscode.Range(
    document.positionAt(0), 
    document.positionAt(fullText.length - 1) 
)