I want my extension to be able to open a document at a certain line. Is there a way to expand the code below to have the file open with the cursor at say line 10, column 4? I've seen how this is done with a hyperlink, but I was wondering if there's a way to navigate to the file within the extension.
var openPath = vscode.Uri.file(filePath);
vscode.workspace.openTextDocument(openPath).then(doc => {
vscode.window.showTextDocument(doc);
});
@ddavid456 had most of the answer I needed, and when I added one more line to the block below, I got the entire functionality I needed.
var pos1 = new vscode.Position(10,4);
var openPath = vscode.Uri.file(filePath);
vscode.workspace.openTextDocument(openPath).then(doc =>
{
vscode.window.showTextDocument(doc).then(editor =>
{
// Line added - by having a selection at the same position twice, the cursor jumps there
editor.selections = [new vscode.Selection(pos1,pos1)];
// And the visible range jumps there too
var range = new vscode.Range(pos1, pos1);
editor.revealRange(range);
});
});
Possibly something like this, where this is a fixed value, but you can pass in or calculate a range and reveal the position.
var openPath = vscode.Uri.file(filePath);
vscode.workspace.openTextDocument(openPath).then(doc => {
vscode.window.showTextDocument(doc).then(editor => {
var range = new vscode.Range(new vscode.Position(10, 4), new vscode.Position(11, 0));
editor.revealRange(range);
})
});
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.