如何在扩展中使用 cursorMove 命令,以便在单击 TreeItem 元素时光标跳转到特定位置?
How do I use the cursorMove command in an extension so that the cursor jumps to a specific position when clicking on a TreeItem element?
我目前正在尝试找到一个执行命令,以便光标移动到我已经保存为变量的特定位置
我的位置保存为
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
});
我想从函数数组中实现我的 location/position 以便命令
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)];
}
我目前正在尝试找到一个执行命令,以便光标移动到我已经保存为变量的特定位置
我的位置保存为
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
});
我想从函数数组中实现我的 location/position 以便命令
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)];
}