Estoy trabajando en la extensión vscode TextEditorEdit. Aquí necesito colocar el cursor en un número de línea específico después de abrir el archivo como editor, según el contenido de respuesta de una API. ¿Cómo puedo lograr eso? o ¿qué clase o interfaz proporciona la funcionalidad para hacer esto?
A continuación se muestran los códigos que traté de lograr esto. pero ambos no funcionaron. Ni siquiera planteando ninguna excepción o error.
Aunque esto es abrir y mostrar el archivo en el editor correctamente. Pero no hace ningún efecto cuando intento cambiar la posición del cursor.
vscode.window.showTextDocument() y asignando el editor.selection con una selección personalizada. Esto no tiene ningún efecto en el editor. vscode.workspace.openTextDocument(openPath).then(async doc => { let pos1 = new vscode.Position(57, 40) let pos2 = new vscode.Position(57, 42) let sel = new vscode.Selection(pos1,pos2) let rng = new vscode.Range(pos1, pos2) vscode.window.showTextDocument(doc, vscode.ViewColumn.One).then((editor: vscode.TextEditor) => { editor.selection = sel //editor.revealRange(rng, vscode.TextEditorRevealType.InCenter) }); }); También intenté revelar el rango con editor.revealRange(rng, vscode.TextEditorRevealType.InCenter) pero tampoco tuvo efecto.
options?: parámetro en vscode.window.showTextDocument() . Pero esto tampoco hace nada. Por favor vea el siguiente código- vscode.workspace.openTextDocument(openPath).then(async doc => { let pos1 = new vscode.Position(57, 40) let pos2 = new vscode.Position(57, 42) let rng = new vscode.Range(pos1, pos2) vscode.window.showTextDocument(doc, {selection: rng, viewColumn: vscode.ViewColumn.One}) });Supongo que el problema es abrir primero el archivo y mostrar el documento de texto en el editor, y luego cambiar la ubicación del cursor.
Puede usar el comando integrado cursorMove de VSCode:
let openPath = URI.file(mainPath); vscode.workspace.openTextDocument(openPath).then(async (doc) => { let line = 56; let char = 10; let pos1 = new vscode.Position(0, 0); let pos2 = new vscode.Position(0, 0); let sel = new vscode.Selection(pos1, pos2); vscode.window.showTextDocument(doc, vscode.ViewColumn.One).then((e) => { e.selection = sel; vscode.commands .executeCommand("cursorMove", { to: "down", by: "line", value: line, }) .then(() => vscode.commands.executeCommand("cursorMove", { to: "right", by: "character", value: char, }) ); }); });Este fragmento primero abre el documento y lo muestra en el editor, luego mueve el cursor la cantidad de línea dada y luego lo mueve la cantidad de caracteres dada.