如果我们能在大纲视图中查看某种类型,并在一个地方看到该类型上声明的所有方法,那就太好了。目前类型及其方法是分开的。
eufgjt7s1#
你在使用语言服务器吗?("go.useLanguageServer": true)。我问这个问题是因为扩展有两种不同的方式来计算大纲信息,所以我需要知道它以便将这个FR引导到正确的位置。
"go.useLanguageServer": true
vlurs2pr2#
这在概念上是困难的:在Go语言中,一个方法可以在与声明不同的文件中定义。在这种情况下,没有结构体节点可以将其放在下面。在gopls中,我们决定将方法保留在顶层。
kcwpcxri3#
是的,将useLanguageServer设置为true :)
ubbxdtey4#
感谢!是的,我观察到当不使用语言服务器时,大纲视图将方法分组在其结构类型下。正如@heschik所说,Go的代码结构与其他语言不同,因此基于文档的符号层次结构(DocumentSymbolProvider及其相应的LSP方法)并不完全适用。我将把这个问题转到gopls问题跟踪器上,以便我们在那里讨论如何改进这个问题。
gopls
pbossiut5#
感谢emil14提出的功能请求。目前,我们对大纲视图的处理方式是按照文件中出现的顺序显示符号。这将需要我们改变这种行为。在继续进行之前,我想听听其他用户是否认为这是一个改进。值得注意的是,我们无法显示嵌套在类型声明中的方法,因为这会破坏VS Code的面包屑功能。
5条答案
按热度按时间eufgjt7s1#
你在使用语言服务器吗?(
"go.useLanguageServer": true
)。我问这个问题是因为扩展有两种不同的方式来计算大纲信息,所以我需要知道它以便将这个FR引导到正确的位置。
vlurs2pr2#
这在概念上是困难的:在Go语言中,一个方法可以在与声明不同的文件中定义。在这种情况下,没有结构体节点可以将其放在下面。在gopls中,我们决定将方法保留在顶层。
kcwpcxri3#
是的,将useLanguageServer设置为true :)
ubbxdtey4#
感谢!是的,我观察到当不使用语言服务器时,大纲视图将方法分组在其结构类型下。正如@heschik所说,Go的代码结构与其他语言不同,因此基于文档的符号层次结构(DocumentSymbolProvider及其相应的LSP方法)并不完全适用。
我将把这个问题转到
gopls
问题跟踪器上,以便我们在那里讨论如何改进这个问题。pbossiut5#
感谢emil14提出的功能请求。目前,我们对大纲视图的处理方式是按照文件中出现的顺序显示符号。这将需要我们改变这种行为。在继续进行之前,我想听听其他用户是否认为这是一个改进。值得注意的是,我们无法显示嵌套在类型声明中的方法,因为这会破坏VS Code的面包屑功能。