lsp-mode:ccls or clangd?

如今clangd已经发展到了版本13,想大致了解ccls和clangd的使用体验,但只看到18,19年的比较,所以发了这个新帖子。

大家可以从补全体验、补全速度、静态语法检查等方面讨论讨论奥

clangd 至少到一个月前仍不能查基类引用,继续 ccls。

2 个赞

还可以从开发团队比较,ccls似乎主要是一个大神自己完成的,不知道后续会不会继续维护

clangd 稳定,这一条。我就放弃了ccls。折腾不动了。

印象里面 ccls 的作者似乎是去了 llvm 团队, 感觉项目的未来会比较微妙 :expressionless:

2 个赞

其实我建议题主开个投票,看看用哪个多的就选哪个

1 个赞

我用 eglot + clangd,开箱即用。

1 个赞

我目前使用lsp-mode+clangd,但是看doom emacs下ccls是默认的,所以产生比较的想法

clangd 能配置出像这样查看引用树并导航的功能吗?好像没看到任何地方有提到。 目前ccls还是唯一的选择,尝试几次clangd都放弃了。 ccls

如果不能用ccls,那么我的次优选择还会是以前的rtags,clangd实在是太简陋了,一些必备的功能有点少。

不好说,ccls 稳定,但是 clangd 好像要快些。如果能容忍不时崩溃,建议使用 clangd。

不过我工作上还在使用 CEDET/Semantic,因为 clangd 和 ccls 都不符合要求(

clangd和ccls都有的是跳转、补全这些最基础的,ccls有caller层次这些,但是我不知道clangd最新版是否有添加

稳定这个我倒是没啥感觉;速度的话可以多开几个core或许

一直用ccls。

1 个赞

写c++还是倾向于用ccls,写c就clangd了。

1 个赞

clangd 目前有这个功能。需要 lsp-tree

2 个赞

额您可以展开说说为啥吗

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