Некоторая предыстория:
Как упоминалось в @ rioV8, revealRange
был способом go, но проблема заключалась в том, что я не мог понять, как его использовать с помощью VSCode API, Итак, здесь появился @Shahriar Hossain. Код @Shahriar Hossain работает, однако отсутствует важное объявление, и мне также пришлось выяснить, как запускать код, когда пользователь нажимает кнопку.
Это полное решение:
vscode.window.showInformationMessage(s.substring(i), GoToFile).then(selection => {
if (selection === GoToFile) {
vscode.workspace.openTextDocument(currentDirectory + '\\' + fileName + '.jack')
.then(document => vscode.window.showTextDocument(document))
// Whatever code inside this "then" block
// will be executed on button click
.then(x => {
let m = s.substring(i, j).search(/\(line \d+\)/);
let subStr = s.substring(m + 6);
let n = subStr.search(/\)/);
subStr = subStr.substring(0, n);
let lineToGo = parseInt(subStr.match(/\d+/));
// The missing declaration of the activeEditor
let activeEditor = vscode.window.activeTextEditor;
let range = activeEditor.document.lineAt(lineToGo - 1).range;
activeEditor.selection = new vscode.Selection(range.start, range.end);
activeEditor.revealRange(range);
})
}
});