当通过 LSP(语言服务器协议)消息仅索引一个文件时,如何clangd
知道函数定义在哪里textDocument/didOpen
?
compile_commands.json
这个问题是基于没有文件可供使用的假设clangd
。
据我所知,当接收到工作区中没有文件的 LSP 消息(?)时,clangd
将部分索引(?)给定文件。clangd
textDocument/didOpen
compile_commands.json
因此,被部分索引的文件的索引将仅驻留在内存中。
那么,当它不知道任何外部文件时,如何clangd
知道部分索引文件之外的定义呢?
或者它知道吗?
或者它是否通过一些查看相对路径或#include "<filename.hpp>"
仅驻留在目录root-project-dir/src
等中的包含()的启发式方法来了解其他文件?