cuqery 补全卡顿的问题,貌似找到原因了,感觉是个方向啊

改变 company-backends 的顺序是否有用呢?

一样,ccls编译也挺方便。现象就是头文件如果没有被cpp显式包含,就不会索引,然后如果不被索引,貌似就不能跳转,我要是显式包含了,就能跳转了。能不能强制索引呀。

Create new page · MaskRay/ccls Wiki · GitHub 包含常見distro的instruction for the impatient。配置方式已經非常方便了(依賴Clang C++是困難的。你看ycmd cmake多麼複雜)。cquery還有7個git modules。

@yicao 如果#include generatoed_file 確保該檔案已生成。

(ccls-file-info)獲取args在命令行執行看有無diagnostics。

clang preamble有bug(影響所有clang based language servers),https://github.com/maskray/ccls/blob/master/src/clang_complete.cc#L403 CompletionMain裏改成 std::shared_ptr<PreambleData> preamble; // = session->GetPreamble();看是否修復,是的話可能撞上了 @amosbird 也碰到的bug。

头文件如果没有被cpp显式包含,就不会索引,然后如果不被索引,貌似就不能跳转

By design。沒有被包含的.h可以在專案加載完後打開,也會索引。

https://github.com/maskray/ccls/blob/master/src/messages/textDocument_did.cc#L57

  // Submit new index request if it is not a header file or there is no
  // pending index request.
  std::pair<LanguageId, bool> lang = lookupExtension(path);
  if ((lang.first != LanguageId::Unknown && !lang.second) ||
      !pipeline::pending_index_requests)
    pipeline::Index(path, {}, IndexMode::Normal);
2 个赞

很详尽的解释,谢谢!@MaskRay 是台湾同胞?对编译原理很了解呀。 我看到https://github.com/cquery-project/cquery/releases 提供了 Linux 的预编译包,ccls 能提供类似的吗?对 Linux 上安装有很大帮助。另外,homebrew 上官方下载并没有 ccls,好像 pr 几年前就 close 了,只能用第三方的 home tap,也有所不方便。不利于推广。

也给 arch 弄一个吧

welcome back

你给的这个就是第三方的 tap 呀

这个才是官方的,但是被 close 了。tap 也不是不能用,只是个人觉得不利于推广。总是要麻烦一些。

是大陆的吧,博客是简体写的,知乎还是博客上看到现在在Google,去国外之后好像大多时候用繁体,然后 @LdBeth 说用繁体的时候词语也按台湾的习惯会比较舒服。(?)

我好像没说过这种话。只是闲的胃疼用仓颉输入用的自动联想是港台风格又懒得全部自己打罢了。而且不管中英繁简我对自己的文法都很宽容罢了

还是别吧……我对湾湾友人的命名天赋感到惊奇……