vscode:符号搜索,但仅限于我的代码

gue*_*tli 6 go visual-studio-code

如果我使用 ctrl-t (符号搜索),我会得到所有符号。这意味着我的符号和我使用的库的符号。

有没有办法将符号搜索限制为仅包含在我的代码中的符号(不包括库中的符号)。

我使用 vscode 进行 Go。

vscode-符号-在 golang 中搜索

在上面的屏幕截图中,我突出显示了来自我的代码的单行。

如果“仅我的代码”的过滤器不可能,那么如果我的代码能够被 vscode 突出显示,那就太好了。

相关问题: https: //github.com/golang/go/issues/37236

Nir*_*tty 5

您可以使用vscode-search-everywhere

参考

扩展设置

searchEverywhere.include: "**/*.{go,js,jsx,ts,tsx}"
Run Code Online (Sandbox Code Playgroud)

含义:包含具有上述扩展名的所有文件


Von*_*onC 2

\n

相关问题: https: //github.com/golang/go/issues/37236

\n
\n

该问题刚刚通过CL 490935golang/tools提交 8e9b185结束:

\n
\n

gopls/internal/lsp/source:添加“symbolScope”选项

\n

添加一个新的“ symbolScope”选项,用于控制匹配是否仅限于工作区包。
\n这是新的默认行为,尽管可以通过设置启用旧行为"symbolScope": "all"

\n
\n

实际上,CL 494217将此设置的默认设置\n保留为“ all”,并征求用户\n更喜欢哪个默认设置的反馈。

\n

您现在拥有:

\n
\n

symbolScope 枚举

\n

symbolScope控制在哪些包中搜索工作区/符号\n请求。

\n

默认值“ workspace”仅搜索工作区\n包。
\n旧行为“ all”导致\n搜索所有已加载的包,包括依赖项;这更加昂贵并且\n可能会返回不需要的结果。

\n

必须是以下之一:

\n
    \n
  • "all"匹配任何加载的包中的符号,包括依赖项。
  • \n
  • "workspace"仅匹配工作区包中的符号。
  • \n
\n
\n

这仍然可能包括供应商,这可能是一个问题。

\n
\n

注意:这不包括#37237(“ x/tools/gopls:支持符号的高级查询语法”):

\n
\n

直到 VS Code 允许控制工作区符号结果对话框。

\n

就像现在一样,任何类型的高级查询语法都会导致 VS Code 过滤掉所有结果,因为它在我们返回结果后会进行自己的一轮排序和过滤。

\n

您现在可以通过构建 gopls@master 来测试这一点:

\n

例如:

\n
git clone https://go.googlesource.com/tools\ncd tools/gopls && go install\n
Run Code Online (Sandbox Code Playgroud)\n
\n
\n

Thomas G\xc3\xbttler,OP,确认

\n
\n

ctrl+t 现在仅显示我的代码:

\n

https://user-images.githubusercontent.com/414336/236568501-aa61fcfe-1b28-43ae-a4cc-8f6b7af03f87.png

\n
\n
\n

有一个回归(#60027:以奇怪的顺序返回奇怪的结果),这将通过gopls/v0.12.0WorkspaceSymbol修复,感谢findleyr

\n

保罗·乔利 补充道

\n
\n
\n

这个问题是关于工作区之外的符号的。这个改变对你有帮助吗?

\n
\n

并不真地。因为我要搜索符号的范围发生了变化。

\n
    \n
  • 有时我想搜索相当于所有包空间的内容,
  • \n
  • 有时只是在工作场所,
  • \n
  • 有时只是在当前文件所属模块的范围内,
  • \n
  • 有时是当前文件所属包的范围,
  • \n
  • 有时仅在当前文件的范围内。
  • \n
\n

因此,拥有单个静态配置选项并没有多大帮助。
\n并不是说这对其他人没有帮助,我只是与之前讨论过的问题建立联系。

\n
\n