我希望我的VS Code扩展能够在初始化时突出显示变量名称。例如,当x = 4
时,我希望x
用红色突出显示。这是我到目前为止写的代码:
extension.ts
context.subscriptions.push(
vscode.workspace.onDidChangeTextDocument((event) => {
const activeEditor = vscode.window.activeTextEditor;
if(activeEditor){
const currentLineIndex = activeEditor.selection.active.line;
const lineContent = activeEditor.document.lineAt(currentLineIndex);
const variableRegularExpression = new RegExp("^\s{0,}[a-zA-Z]{1,}[0-9]{0,}\s{0,}=\s{0,}[a-zA-Z0-9]{1,}\s{0,}(//[a-zA-Z0-9]){0,}$");
if(variableRegularExpression.test(lineContent.text)){
const variableName = lineContent.text.split('=')[0].trim();
const startIndex = lineContent.text.indexOf(variableName);
const endIndex = startIndex + variableName.length;
const variableRange = new vscode.Range(currentLineIndex, startIndex, currentLineIndex, endIndex);
}
}
})
);
正如您所看到的,我试图让扩展动态地理解何时初始化变量。我将当前正在编辑的行与正则表达式进行比较,如果存在匹配,则提取变量的范围。
是否有一种方法可以动态地用颜色突出显示这个范围?这是实现变量初始化动态高亮的好方法吗?
您正在寻找的是语义令牌突出显示。
你可以实现一个语义标记高亮器,它从一个对象数组中读取你想要高亮显示的文本的位置。