以编程方式获取 VS Code 工作区中所有符号的列表以进行自定义扩展

max*_*son 7 visual-studio-code vscode-extensions

在 VS Code 的快速视图中,您可以键入#mySymbol以在工作区中搜索名为mySymbol. 我想以编程方式获得这些符号结果,但没有看到通过 API 这样做的方法。有任何想法吗?

Gam*_*a11 6

您可以为此运行vscode.executeWorkspaceSymbolProvider命令

vscode.executeWorkspaceSymbolProvider - 执行所有工作区符号提供程序。

  • 查询- 搜索字符串
  • (returns) - 解析为 SymbolInformation 实例数组的承诺。
vscode.commands.executeCommand("vscode.executeWorkspaceSymbolProvider", "mySymbol").then(
    function (symbols: vscode.SymbolInformation[]) {
        // do something with the symbols
    }
);
Run Code Online (Sandbox Code Playgroud)

请注意,如果搜索查询是空字符串,则某些符号提供程序实现可能不会返回任何结果。