Visual studio code 获取变量声明的位置

Visual studio code 获取变量声明的位置,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在开发一个扩展,它要求我获取变量声明的位置。 比如说, var x=5; 控制台日志(x); VS代码API是否提供类似于getVariableLocations()的功能,该功能将返回var x=5的位置?您可以通过运行'vscode.executeDocumentSymbolProvider'来获取 下面是一个示例,它在活动文档上执行命令,然后将嵌套的符号列表(每个DocumentSymbol可以有子项)转换为通过SymbolKind.Variable过滤的平面列表: 函数findVa

我正在开发一个扩展,它要求我获取变量声明的位置。 比如说,

var x=5;
控制台日志(x);
VS代码API是否提供类似于getVariableLocations()的功能,该功能将返回var x=5的位置

您可以通过运行
'vscode.executeDocumentSymbolProvider'
来获取

下面是一个示例,它在活动文档上执行命令,然后将嵌套的符号列表(每个
DocumentSymbol
可以有
子项
)转换为通过
SymbolKind.Variable
过滤的平面列表:

函数findVars(符号:vscode.DocumentSymbol[]):vscode.DocumentSymbol[]{
变量=
symbols.filter(symbol=>symbol.kind==vscode.SymbolKind.Variable);
返回vars.concat(symbols.map(symbol=>findVars(symbol.children))
.减少((a,b)=>a.concat(b),[]);
}
var activeEditor=vscode.window.activeTextEditor;
如果(activeEditor!==未定义){
vscode.com命令
.执行命令(
'vscode.executeDocumentSymbolProvider',activeEditor.document.uri)
。然后(符号=>{
如果(符号!==未定义){
for(findVars的常量变量(符号)){
console.log(变量名);
}
}
});
}

在此代码段本身上运行此命令时,它会记录
activeEditor
vars
variable
。您可以使用检查位置。

您是说定义变量的文件的路径吗?我正在查找文件的面包屑字符串,该字符串就是该变量的路径。我就在这里吗?如果是这样,我如何使用上面的代码开始?我应该在vscode中运行nodejs中的代码吗?@Timo我想OP计划在扩展中使用它。在Microsoft的示例repo中可以找到一些示例扩展: