我使用 lsp-mode 查看linux kernel 代码, go to definition, find reference 都可以工作, 但如何在整个源码目录范围 查找呢?比如 start_kernel 这个函数,我如何搜索找到它并打开文件?
1 个赞
lsp-find-references
只展示 ls (language server) 返回的结果,是否查找整个项目得看 ls 的实现。
clangd 自 v9 版本之后开始支持索引整个项目。你可能需要开启索引。
提问的时候最好说明使用哪个 ls,不要让别人从你的截图 mode line 上找。
2 个赞
看一下编译脚本里哪个参数可以导出compile_commands.json,之前有pr搞这种的来着。
然后索引几分钟应该就可以了
改一下lsp传给clangd的参数启用索引
1 个赞
你可能需要的只是 xref-find-apropos
. 默认情况下使用的是 grep, 可以配置 xref-search-program
为 ripgrep
加快搜索速度。
自然在 lsp-mode
启用的情况下,由于 lsp-mode
提供了一个 xref backend, 当然是不会使用默认的情况珠。这个函数对应的是 language server 的 workspace/symbol
.