clangd 是 llvm 项目推出的 C/C++ 语言服务器,通过 LSP(Language Server Protocal)协议向编辑器如 vscode/vim/emacs 提供语法补全、错误检测、跳转、格式化等等功能。据说是比 vscode 自己的 IntelliSense 更好一些,我开始用 clangd 的时候 IntelliSense 貌似还不支持使用 compile_commands.js
文件辅助代码分析,因此并没有具体对比过两者的差异。
macOS 上附带的 llvm 是 Apple 自己管理的,属于 Xcode 的一部分,这个版本其实是落后于主线版本很多的。理论上来说这种等待上游稳定后再选择使用的版本稳定性更好,问题会比较少,然而意外的这次在更新了 Xcode 后 clangd 就翻车了。