Files
playbook/docs/cpp/clangd.md
T
cshandClaude Sonnet 4.5 99bef309b7 🎨 style(markdown): format all markdown files with prettier
- 使用 prettier 格式化所有 markdown 文件
- prose-wrap: always, print-width: 80
- 保持代码块和表格格式
- 提升可读性和一致性

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-07 17:18:01 +08:00

1.1 KiB
Raw Blame History

clangd 补全配置(.clangd

本章节提供 clangd 的推荐配置模板与落地要点(参考 tsl-devkit/lsp-server/.clangd)。

1. 目标

  • 让 IDE/编辑器的 C++ 补全、跳转、诊断稳定可复现。
  • 优先依赖 compile_commands.json(由 CMake 生成),避免手写复杂编译参数。

2. 必要前提:生成 compile_commands.json

  • CMake:建议开启 CMAKE_EXPORT_COMPILE_COMMANDS=ON(本 Playbook 的 templates/cpp/CMakeLists.txt 已开启)。
  • 使用 preset 构建后,在对应 build 目录会生成 compile_commands.json
    • 例如:build/windows-x86_64-clang-cross/Release/compile_commands.json

3. .clangd 模板

  • 模板文件:templates/cpp/.clangd
  • 关键字段:CompileFlags.CompilationDatabase 指向 build 目录(包含 compile_commands.json 的目录)。

4. Modules 注意事项(C++23

  • 若新增/删除/重命名 .cppm,必须同步更新构建系统的模块清单(例如 CMake FILE_SET CXX_MODULES),否则 compile_commands.json 可能缺项,导致 clangd 补全/跳转不稳定。