当前位置: > > > > vscode:符号搜索,但仅限于我的代码
来源:stackoverflow
2024-04-27 19:42:44
0浏览
收藏
在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天就整理分享《vscode:符号搜索,但仅限于我的代码》,聊聊,希望可以帮助到正在努力赚钱的你。
问题内容
如果我使用 ctrl-t (符号搜索),我会得到所有符号。这意味着我的符号和我使用的库的符号。
有没有办法将符号搜索限制为仅在我的代码中的符号(不包括库中的符号)。
我使用 vscode for Go。
在上面的屏幕截图中,我突出显示了来自我的代码的单行。
如果“仅我的代码”的过滤器不可能,那么如果我的代码能够被 vscode 突出显示,那就太好了。
相关问题:https://github.com/golang/go/issues/37236
正确答案
相关问题:
该问题刚刚通过 解决并提交golang/tools
提交 8e9b185:
gopls/internal/lsp/source:添加“symbolscope”选项
添加一个新的“symbolscope
”选项,用于控制匹配是否仅限于工作区包。
这是新的默认行为,尽管可以通过设置 "symbolscope": "all"
来启用旧行为。
实际上, 保留了此默认值 设置为“all
”,并征求我们用户的默认反馈 更喜欢。
您现在拥有:
symbolscope
枚举
symbolscope
控制在哪些包中搜索工作区/符号 请求。
默认值“workspace
”仅搜索工作空间 包。
遗留行为“all
”会导致所有加载的包 搜索,包括依赖项;这个比较贵,而且可能 返回不需要的结果。
必须是以下之一:
"all"
匹配任何加载的包中的符号,包括依赖项。"workspace"
仅匹配工作空间包中的符号。
这仍然可能包括,这可能是一个问题。
注意:这不包括 (“x/tools/gopls
: 支持symbol的高级查询语法”):
直到 vs code 允许控制工作区符号结果对话框为止。
就像现在一样,任何类型的高级查询语法都会导致 vs code 过滤掉所有结果,因为它在我们返回结果后会进行自己的一轮排序和过滤。
您现在可以通过构建 gopls@master 来测试这一点:
例如:
git clone https://go.googlesource.com/tools cd tools/gopls && go install
,op,:
ctrl+t 现在仅显示我的代码:
存在回归(:workspacesymbol
以奇怪的顺序返回奇怪的结果),这将通过 修复,感谢 。
还有 :
此问题与工作区之外的符号有关。此更改对您有帮助吗?
不是真的。因为我要搜索符号的范围发生了变化。
- 有时我想搜索相当于所有包空间的内容,
- 有时只是在工作区,
- 有时只是在当前文件所属模块的范围内,
- 有时是当前文件所属包的范围,
- 有时仅在当前文件的范围内。
因此,只有一个静态配置选项并没有多大帮助。
并不是说这对其他人没有帮助,我只是将其与之前讨论过的问题联系起来。
终于介绍完啦!小伙伴们,这篇关于《vscode:符号搜索,但仅限于我的代码》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~公众号也会发布Golang相关知识,快来关注吧!