我目前正试图找到一个执行命令,以便光标移动到我已经保存为变量的特定位置
我的位置保存为line = functions[i].location.range.start.line
用于特定行,column = functions[i].location.range.start.character
用于特定位置
我已经知道我可以用new vscode.Position(line,column)
创建位置
现在,我该如何将其准确地集成到命令中
"cursorMove({to: $ViewPosition, select: boolean, by: $By, value: number})
";?
默认情况下,我可以将光标向上移动一行,使用
vscode.commands.executeCommand("cursorMove",{
to: "up",
by: "wrappedLine",
select: false,
value: 1
});
我想从函数数组中实现我的位置,以便命令
let clickEvent = vscode.commands.registerCommand('homeItem.click', (functions[i].location) => {
vscode.commands.executeCommand("cursorMove", {
to: x,
by: x,
select: false,
value: x
});
});
将光标焦点设置为提供的位置
我看到两个选项:
cursorMove
相对于当前位置。并不像我想你知道的那样处于绝对的地位。因此,您必须获得当前光标位置vscode.window.activeTextEditor.selection.active.line
和line = functions[i].location.range.start.line
之间的差值,并在cursorMove
命令中使用该差值(在计算后,知道您需要向上还是向下(
如果您关心的话,您必须对character
执行同样的操作,并在正确的行中执行第二个cursorMove
以按字符移动。所以这是一项艰巨的工作。
- 只需通过设置
selection
来设置光标位置
const myPos = new vscode.Position(x,x); // I think you know how to get the values, let us know if you don't
vscode.window.activeTextEditor?.selections = [new vscode.Selection(myPos, myPos)];
或者先检查一下:
if (vscode.window.activeTextEditor) {
const myPos = new vscode.Position(x,x); // I think you know how to get the values, let us know if you don't
vscode.window.activeTextEditor?.selections = [new vscode.Selection(myPos, myPos)];
}