如今clangd已经发展到了版本13,想大致了解ccls和clangd的使用体验,但只看到18,19年的比较,所以发了这个新帖子。
大家可以从补全体验、补全速度、静态语法检查等方面讨论讨论奥
clangd 至少到一个月前仍不能查基类引用,继续 ccls。
还可以从开发团队比较,ccls似乎主要是一个大神自己完成的,不知道后续会不会继续维护
clangd 稳定,这一条。我就放弃了ccls。折腾不动了。
印象里面 ccls 的作者似乎是去了 llvm 团队, 感觉项目的未来会比较微妙
其实我建议题主开个投票,看看用哪个多的就选哪个
我用 eglot + clangd,开箱即用。
我目前使用lsp-mode+clangd,但是看doom emacs下ccls是默认的,所以产生比较的想法
clangd 能配置出像这样查看引用树并导航的功能吗?好像没看到任何地方有提到。 目前ccls还是唯一的选择,尝试几次clangd都放弃了。
如果不能用ccls,那么我的次优选择还会是以前的rtags,clangd实在是太简陋了,一些必备的功能有点少。
不好说,ccls 稳定,但是 clangd 好像要快些。如果能容忍不时崩溃,建议使用 clangd。
不过我工作上还在使用 CEDET/Semantic,因为 clangd 和 ccls 都不符合要求(
clangd和ccls都有的是跳转、补全这些最基础的,ccls有caller层次这些,但是我不知道clangd最新版是否有添加
稳定这个我倒是没啥感觉;速度的话可以多开几个core或许
一直用ccls。
写c++还是倾向于用ccls,写c就clangd了。
clangd 目前有这个功能。需要 lsp-tree
额您可以展开说说为啥吗
CEDET/Semantic 这是什么?听都没听过
那是 Emacs 内置的,比较老的一个包了。
你执行 M-x package-list-packages
就能看见了
Package cedet is built-in.
Status: Built-In.
Version: 2.0
Summary: Setup CEDET environment
Package semantic is built-in.
Status: Built-In.
Version: 2.2
Summary: Semantic buffer evaluator.
API for providing the semantic content of a buffer.
The Semantic API provides an interface to a series of different parser
implementations. Each parser outputs a parse tree in a similar format
designed to handle typical functional and object oriented languages.
这里有一个相关c/c++的配置教程,C/C++ Development Environment for Emacs