TypeScript - Auswahlbereich im Visual Studio Code-Dokument festlegen
Ich habe einen Befehl in einer Erweiterung, bevor ich den Befehl ausführe, möchte ich den Auswahlbereich ändern, um die ganzen Zeilen zu erhalten...
const sel = textEditor.selection;
const firstLine = textEditor.document.lineAt(sel.start.line);
const lastLine = textEditor.document.lineAt(sel.end.line);
const range = new vscode.Range(firstLine.lineNumber, firstLine.range.start.character, lastLine.lineNumber, lastLine.range.end.character);
Ich habe einen neuen Bereich erstellt, aber ich weiß nicht, wie ich die Auswahl des Dokuments auf einen neuen Bereich setzen kann...
Antwort #1
new Selection() hat 2 Überladungen (2 oder 4 Argumente):
Selection(anchor: vscode.Position, active: vscode.Position)Selection(anchorLine: number, anchorCharacter: number, activeLine: number, activeCharacter: number)
Beispiel, unter Verwendung von 4 Argumenten:
textEditor.selection = new vscode.Selection(firstLine.lineNumber, firstLine.range.start.character,
lastLine.lineNumber, lastLine.range.end.character)
Um mehrere Cursor zu erstellen, müssen Sie textEditor.selections setzen
textEditor.selections = [
new vscode.Selection(0, 0, 0, 10),
new vscode.Selection(1, 0, 1, 10),
];
Antwort #2
Zum Registrieren eines Befehls zum Festlegen der Cursorposition habe ich dies verwendet:
let cmd = vscode.commands.registerTextEditorCommand('extension.mysnippet', (te) => {
// selection start = line 3, char 5 ||| selection end = line 3, char 5
te.selection = new vscode.Selection(5, 3, 5, 3)
});
context.subscriptions.push(cmd);
