在Visual Studio代码文档中设置选择范围
Set selection range in the Visual Studio Code document
我在扩展中有一个命令,在运行命令之前,我想更改选择范围以获得整行...
const sel = textEditor.selection;
const firstLine = textEditor.document.lineAt(sel.start.line);
const lastLine = textEditor.document.lineAt(sel.end.line);
const range = new vscode.Range(firstLine.lineNumber, firstLine.range.start.character, lastLine.lineNumber, lastLine.range.end.character);
我创建了一个新范围,但我不知道如何将文档的选择设置为一个新范围...
new Selection()
有 2 个重载(2 或 4 个参数):
Selection(anchor: vscode.Position, active: vscode.Position)
Selection(anchorLine: number, anchorCharacter: number, activeLine: number, activeCharacter: number)
示例,使用 4 个参数:
textEditor.selection = new vscode.Selection(firstLine.lineNumber, firstLine.range.start.character,
lastLine.lineNumber, lastLine.range.end.character)
要制作多个光标,您需要设置 textEditor.selections
textEditor.selections = [
new vscode.Selection(0, 0, 0, 10),
new vscode.Selection(1, 0, 1, 10),
];
为了注册一个设置光标位置的命令,我使用了这个:
let cmd = vscode.commands.registerTextEditorCommand('extension.mysnippet', (te) => {
// selection start = line 3, char 5 ||| selection end = line 3, char 5
te.selection = new vscode.Selection(5, 3, 5, 3)
});
context.subscriptions.push(cmd);
我在扩展中有一个命令,在运行命令之前,我想更改选择范围以获得整行...
const sel = textEditor.selection;
const firstLine = textEditor.document.lineAt(sel.start.line);
const lastLine = textEditor.document.lineAt(sel.end.line);
const range = new vscode.Range(firstLine.lineNumber, firstLine.range.start.character, lastLine.lineNumber, lastLine.range.end.character);
我创建了一个新范围,但我不知道如何将文档的选择设置为一个新范围...
new Selection()
有 2 个重载(2 或 4 个参数):
Selection(anchor: vscode.Position, active: vscode.Position)
Selection(anchorLine: number, anchorCharacter: number, activeLine: number, activeCharacter: number)
示例,使用 4 个参数:
textEditor.selection = new vscode.Selection(firstLine.lineNumber, firstLine.range.start.character,
lastLine.lineNumber, lastLine.range.end.character)
要制作多个光标,您需要设置 textEditor.selections
textEditor.selections = [
new vscode.Selection(0, 0, 0, 10),
new vscode.Selection(1, 0, 1, 10),
];
为了注册一个设置光标位置的命令,我使用了这个:
let cmd = vscode.commands.registerTextEditorCommand('extension.mysnippet', (te) => {
// selection start = line 3, char 5 ||| selection end = line 3, char 5
te.selection = new vscode.Selection(5, 3, 5, 3)
});
context.subscriptions.push(cmd);