Я пытаюсь написать функцию, которая будет переходить на следующий пробел от курсора.Это то, что я до сих пор, но я не мог понять, как искать с текущей позиции курсора:
// go to next space
function goToNextSpace(args) {
const vscode = args.require('vscode');
const regEx = /\s/;
const ACTIVE_EDITOR = vscode.window.activeTextEditor;
const text = ACTIVE_EDITOR.document.getText();
const match = regEx.exec(text);
const nextPos = ACTIVE_EDITOR.document.positionAt(match.index);
return ACTIVE_EDITOR.selection = new vscode.Selection(
nextPos, nextPos
);
}
Я смотрел на https://code.visualstudio.com/api/references/vscode-api, но я просто не мог найтигде он ссылается на то, как использовать регулярные выражения.
V2 после обратной связи с Мэттом
Благодаря @MattBierner у меня теперь есть следующий код.Я добавил 1 к индексу, чтобы каждый раз, когда я его вызываю, он переходил к следующему пробелу (а не просто оставался на последнем найденном месте).Теперь я упускаю способ перейти к следующему пробелу в следующей строке, если в конце строки.
// go to next space
function goToNextSpace(args) {
const vscode = args.require('vscode');
const ACTIVE_EDITOR = vscode.window.activeTextEditor;
const text = ACTIVE_EDITOR.document.getText();
const regEx = /\s/g;
regEx.lastIndex = ACTIVE_EDITOR.document.offsetAt(ACTIVE_EDITOR.selection.active) + 1;
const match = regEx.exec(text);
const nextPos = ACTIVE_EDITOR.document.positionAt(match.index);
return ACTIVE_EDITOR.selection = new vscode.Selection(
nextPos, nextPos
);
}