Visual studio code VSCode扩展:获取自定义大纲视图的函数大纲
我正在尝试为VSCode创建一个自定义大纲视图(目前仅针对python),但我没有找到获取所需信息的方法 我喜欢通过以下方式获取信息:Visual studio code VSCode扩展:获取自定义大纲视图的函数大纲,visual-studio-code,vscode-extensions,add-on,Visual Studio Code,Vscode Extensions,Add On,我正在尝试为VSCode创建一个自定义大纲视图(目前仅针对python),但我没有找到获取所需信息的方法 我喜欢通过以下方式获取信息: 数组: [0] 标签:“foo” 类型:“功能” 参数:[……] 范围:[……] 内部定义:[0] [1] 标签:“myclass” 类型:“类” 基本类:“ 范围:[……] 内部定义: [0]: [……] [1] : [……] 目前,我试图通过vscode.commands.executeCommand('vscode.
- 数组:
- [0]
- 标签:“foo”
- 类型:“功能”
- 参数:[……]
- 范围:[……]
- 内部定义:[0]
- [1]
- 标签:“myclass”
- 类型:“类”
- 基本类:“
- 范围:[……]
- 内部定义:
- [0]:
- [……]
- [1] :
- [……]
- [0]:
- [0]
vscode.commands.executeCommand('vscode.XXX'
我所尝试的:
下面是我尝试过的命令和收到的结果
vscode.executeImplementationProvider
- 半可用:functionname的范围。缺少其他信息
vscode.executeOverProvider
- 半可用:函数头字符串(包括
关键字)def
- 半可用:函数头字符串(包括
vscode.executeDefinitionProvider
- 半可用:完整功能的范围。个别信息必须“解析出来”
vscode.executeTypeDefinitionProvider
- 从未提供任何结果
vscode.executedParationProvider
- 从未提供任何结果
vscode.executeDocumentSymbolProvider
- 但是,这是一个好的方向 (1) 仅对整个文档起作用(不是单个功能) (2) 只返回一级实体(即结果中不包括类方法)
vscode.commands.executeCommand(“vscode.executeDocumentSymbolProvider”,uri,position)
innerDefinitions
在这里称为children
- 大纲的详细程度(和正确程度)取决于提供程序的实现。此外,提供程序的信息在不同语言之间不一定一致。记住这一点非常重要!
- 目前(2021/03),标准符号提供商。。。
- …Python将为函数的每个参数和局部变量指定一个子项。它们将无法区分
…C++将不包含参数的子集。但是它将在其<代码>名称>代码>中具有参数类型。(例如<代码>名称<代码> > <代码f>(字符串p)<代码>将是<代码> Foo(String):Value < /LI> - 正如你所看到的,两者的行为都有各自的特点
- 目前(2021/03),标准符号提供商。。。
- 您可以自己创建并注册DocumentSymbolProvider,它将返回所需的详细级别(请参阅)