Visual studio code 如何在vscode中实现自己的代码大纲布局?

Visual studio code 如何在vscode中实现自己的代码大纲布局?,visual-studio-code,vscode-extensions,Visual Studio Code,Vscode Extensions,我正在Visual Studio代码(vscode)中寻找一个扩展,在这里我可以定义自定义代码大纲。本质上,以类似于树的方式列出我的所有函数/定义 假设我使用的是一种简单的语言,如下所示: begin foo1 arriving procedure move into queue1 print queue1 send to foo2 end begin foo2 arriving procedure move into queue2 print queue2 send

我正在Visual Studio代码(vscode)中寻找一个扩展,在这里我可以定义自定义代码大纲。本质上,以类似于树的方式列出我的所有函数/定义

假设我使用的是一种简单的语言,如下所示:

begin foo1 arriving procedure
  move into queue1
  print queue1
  send to foo2 
end

begin foo2 arriving procedure
  move into queue2
  print queue2
  send to foo3
end
我想知道vscode是否有一个扩展,让我实现如下内容:

如果它是可点击的,那就太好了。导航/转到定义,在代码更复杂的情况下可扩展

到目前为止我发现了什么

  • vscode代码大纲 ,我喜欢这个扩展,只是它不适合我的语言。

  • 显示功能

  • sourcecookinger用于记事本++(除了记事本++,我可以做我想做的事情)

  • 我喜欢第二个扩展名(Show函数),因为它可以在vscode/settings文件中轻松自定义。您可以从设置中定义自己的正则表达式。但是,它不在固定到编辑器的大纲视图中。这也不是新鲜的生活

    我也喜欢第一个扩展,因为它是在树视图中,但我似乎不知道如何以及在哪里修改设置,以实现我所描述的布局

    如果有人能给我指出正确的方向,我将不胜感激。我已经尝试了一些代码大纲扩展的文档,但我认为这对我来说没有任何意义

    PS:关于StackOverflow的第一篇帖子,如果有什么我需要添加/更改的,请告诉我


    提前谢谢。

    好的,我的请求现在已经解决了

    ,基本上是我正在寻找的扩展

    我跟着他们的向导往前走

    我创建了一个自定义的专用映射器“mapper_X.js”,将其保存到任意位置,并在我的vscode用户设置中粘贴了
    “codemap.X”:“mylocation\\mapper_X.js”,
    (如github指南中所述)。然后我打开一个新文件,将其保存为untitle.X并键入一些语法(我问题中的示例代码),现在我可以看到我的自定义大纲

    可以在下面的结果链接中看到,我已经(故意)没有定义我的映射器来考虑其他任何情况。我的制图器仍处于初级阶段。我只是想在我忘记发布这个问题之前分享我的发现


    在最新版本的VS代码中,有一个API用于填充大纲视图,而无需依赖第三方扩展(需要自己编写的扩展除外)

    这是通过注册一个

    导出函数激活(上下文:vscode.ExtensionContext){ context.subscriptions.push( vscode.languages.registerDocumentSymbolProvider( {scheme:“file”,语言:“swmf config”}, 新的SwmfConfigDocumentSymbolProvider()) ); } 这允许在大纲视图中使用平面结构或树结构(两者不能混合)

    类SwmfConfigDocumentSymbolProvider实现vscode.DocumentSymbolProvider{
    公共提供的文档符号(
    文档:vscode.TextDocument,
    令牌:vscode.CancellationToken):承诺{
    返回新承诺((解决、拒绝)=>{
    let符号:vscode.DocumentSymbol[]=[];
    对于(var i=0;i

    有关在大纲视图中提供树状结构的完整小示例,请参见

    不再需要第三方扩展,而是可以提供。非常感谢推荐swmf扩展,它提供了一个很好的示例!!!!