关于cquery对#include的补全

你的意思是加上-I这些就可以补全相应的头文件了吗?不过我的意思是通过cquery获得当前文件的编译器参数来获得include path或者直接获得include path。。。

有个函数cquery-file-info,用于获取命令行

cquery-tree.el 里 Unicode+23F7 显示不出来……应该安装什么字体?

获取这些参数后再调用clang或gcc命令(company-c-headers是这样工作的吧?)来获取头文件列表?这样又要依赖clang了,没有充分利用cquery的功能。

如果lsp补全再加一层处理,即cquery提供原始补全列表,然后到emacs这边用lisp做一层处理,然后再显示,这样可定制性就很强。比如include补全,cquery把头文件列表给过来(比如给company-c-headers)。

company-irony-c-headers是这样,company-c-headers的话是直接让用户提供路径列表。。。不过cquery没有对外获取头文件列表的方法的话只有这样啊,而且cquery-file-info的话,不是也包含了用的哪个编译器吗,主流编译器都可以通过-xc/c++ -E -v -来输出路径吧,不支持的也就算了。。。

src/messages/cquery_wait.cc notification,这个操作是阻塞的,执行后不能处理其他请求(我怀疑还有其他问题,所以自己的fork就删除了这个方法)

你去提issue吧。我觉得他们可能的解决方案是碰到wait请求就创建detached std::thread,阻塞到结束。

这类操作已经是数据库范畴了……

#include 如果可以弹出一个窗口根据要使用的函数来选择头文件,就很爽了.

毕竟包含头文件的目的并不是文件本身,而是函数.

這個應該結合 global completion,然後用 textDocument/codeAction (可能)自動產生#include