문서의 전체 텍스트 범위를 가져오기 위한 VS 코드 확장 API?
저는 그것을 하는 좋은 방법을 찾지 못했습니다.현재의 접근 방식은 모든 것을 먼저 선택하는 것입니다.
vscode.commands.executeCommand("editor.action.selectAll").then(() =>{
textEditor.edit(editBuilder => editBuilder.replace(textEditor.selection, code));
vscode.commands.executeCommand("cursorMove", {"to": "viewPortTop"});
});
선택 후 교체할 때 깜박이기 때문에 이상적이지 않습니다.
이 기능은 강력하지 않을 수도 있지만, 저는 이 기능을 사용해 왔습니다.
var firstLine = textEditor.document.lineAt(0);
var lastLine = textEditor.document.lineAt(textEditor.document.lineCount - 1);
var textRange = new vscode.Range(firstLine.range.start, lastLine.range.end);
이 사례가 도움이 되기를 바랍니다.
var editor = vscode.window.activeTextEditor;
if (!editor) {
return; // No open text editor
}
var selection = editor.selection;
var text = editor.document.getText(selection);
다음을 생성할 수 있습니다.Range
문서 텍스트 및 사용보다 한 글자만 더 길면 됩니다.validateRange
그것을 정확하게 다듬기 위해.Range
메소드는 텍스트의 마지막 줄을 찾고 마지막 문자를 끝으로 사용합니다.Position
의Range
.
let invalidRange = new Range(0, 0, textDocument.lineCount /*intentionally missing the '-1' */, 0);
let fullRange = textDocument.validateRange(invalidRange);
editor.edit(edit => edit.replace(fullRange, newText));
더 짧은 예는 다음과 같습니다.
const fullText = document.getText()
const fullRange = new vscode.Range(
document.positionAt(0),
document.positionAt(fullText.length - 1)
)
언급URL : https://stackoverflow.com/questions/45203543/vs-code-extension-api-to-get-the-range-of-the-whole-text-of-a-document
'programing' 카테고리의 다른 글
문자열에서 문자 인스턴스 바꾸기 (0) | 2023.06.14 |
---|---|
왜 클랑은 "||" 안에 "&"이라고 경고합니까? (0) | 2023.06.14 |
레일에서 STI 하위 클래스의 경로를 처리하는 모범 사례 (0) | 2023.06.14 |
변환이 VUEX의 스토어를 업데이트하지 않음 (0) | 2023.06.14 |
텍스트 편집에서 막대 아래를 숨기는 방법 (0) | 2023.06.14 |