ccls, clangd, cquery, 你更看好谁?


#1
  • ccls: @MaskRay 老大在cquery作恶之后fork之, 另立门户后之作, 早已加入lsp官方 豪华大餐
  • cquery: 在ccls还未出现且clangd仍然残废时期唯一可用的language server.
  • clangd: llvm出品, 但是因为因review效率低下等原因层开发迟缓, 不知是否因为最近发力, qt和jetbrain纷纷表示支持, 比如clion给用户提供了clangd作为error和warning的选项. 不过从其在各个社区的交流中貌似可以看出其用户量貌似是三者中最少的?

#2

官网上貌似没有ccls啊


#3

My bad. Originally, I saw it on https://langserver.org/ and didn’t notice it is community-driven site, not official site:

Langserver.org is a community-driven site, maintained by Sourcegraph, to track development progress of LSP-compatible language servers and clients.


#4

现在还是不知道选哪个,社区就不能集中集中力量,一起完善一个可用的出来?


#6

我看好clangd……以及一切由语言官方或者编译器开发人员开发的language server……

虽然它们可能真的很烂


#7

還有個使用libclang Python binding的C++ language server cxxd,4000+行Python方便學習。

https://microsoft.github.io/language-server-protocol/implementors/servers/現在有ccls了。

對於我,ccls有着學習Clang實作的重要價值,而clangd的開發外人(我)要參與很困難,我自己有着一些特殊的xref需求,所以我會繼續做下去。我的doom-emacs cc-mode ccls配置

clangd的補全是這些language servers中最好的,我打算研究一下它是怎麼做的。

clangd的開發人員也不是編譯器開發人員(你可以對比clang主要貢獻者和clang-tools-extra主要貢獻者,找關聯),但他們確實比我有更多經驗。IDE開發者中倒是有clangd參與者,但他們比較弱勢。clangd現在有一些我討厭的東西:比如對於protobuf檔案的特判、diagnostic轉大寫的開關、一些搜索引擎化的heuristics、……而一些我想要的heuristics他們沒有,也很難讓他們接受


#8

clangd 作为 llvm 的一部分,如果它已经达到相当高的可用度,无疑是最方便的。

如果它还在持续频繁的更新当中,每次都需要重编 llvm,有点麻烦。


UPDATE 2018-08-19 17.13.55

噢,我看到了,clang-tools-extra 是独立的项目,但是好像不太容易编译,所以还是 brew install llvm --HEAD 吧。


#9

官方的东西当然是最方便最稳定的,毕竟llvm的内部原理他们要懂得多些。希望能早点稳定吧。


#11

您好,想咨询一个小技术问题,使用目前lsp自带的clangd,补全效果和速度不错,但是无法补全库头文件,开发目录下的头文件也没有补全提示。手动输入头文件后,头文件中的变量和函数可以获得补全。一直不知道问题出在哪里,望指教。谢谢


#12

19年3月了,现在大家更看好哪个呢?我正在纠结配置clangd还是ccls…


#13

clangd 8.0.0看起来可以很好用了。


#14

目前还是ccls更好,clangd 9.0的今天试了试,不稳定,vscode下一索引就崩溃.ccls稳定很多.就是索引巨耗时,巨耗cpu.不过clangd一个样子,应该是无法避免的.


#15

如何耗時?索引也是編譯,一樣要經過lex parse sema等階段,只是少了codegen。不同clang基於的工具在這部分公共耗時上是差不多的,之後符號、引用的表示,索引的組織會有一些差別。