如何获取与 VS Code 的 API 匹配的正则表达式的行号和字符位置?
How to get the line number and character position of regex match with VS Code's API?
我知道如何获取光标的位置:
editor.selection.active
这将产生如下结果:{ _character: 4, _line 1 }
现在,我想匹配一个字符或单词(在活动编辑器中)并获取它的行号和字符位置:
const editor = vscode.window.activeTextEditor
let text = editor.document.getText()
const match = text.match(/match/)
// What should I write here?
如何获取匹配(或第一个匹配)的行号和字符位置?
我在 Google 或 VS Code API 的文档中找不到任何内容。
中的方法
positionAt(offset: number): Position
将基于零的偏移量转换为位置。
match
有一个偏移量(匹配开始)。
遍历文档的行,并计算行号:
const editor = vscode.window.activeTextEditor;
let lines = editor.document.getText().split(“\n”);
for (let i=0;i<lines.length;i++)
{
const match = lines[i].match(/match/);
if (match)
{
let char = match[1].index;
let lineNb = i;
break;
}
}
我知道如何获取光标的位置:
editor.selection.active
这将产生如下结果:{ _character: 4, _line 1 }
现在,我想匹配一个字符或单词(在活动编辑器中)并获取它的行号和字符位置:
const editor = vscode.window.activeTextEditor
let text = editor.document.getText()
const match = text.match(/match/)
// What should I write here?
如何获取匹配(或第一个匹配)的行号和字符位置?
我在 Google 或 VS Code API 的文档中找不到任何内容。
positionAt(offset: number): Position
将基于零的偏移量转换为位置。
match
有一个偏移量(匹配开始)。
遍历文档的行,并计算行号:
const editor = vscode.window.activeTextEditor;
let lines = editor.document.getText().split(“\n”);
for (let i=0;i<lines.length;i++)
{
const match = lines[i].match(/match/);
if (match)
{
let char = match[1].index;
let lineNb = i;
break;
}
}