From bbce1c19d1ffa914289ac0e850bf057075cc796f Mon Sep 17 00:00:00 2001 From: Justin Simon Date: Mon, 6 Jan 2025 16:42:00 -0500 Subject: [PATCH] Add compile_commands.json documentation for C/C++ (#22639) Added documentation explaining that clangd requires `compile_commands.json` for proper functionality in both C and C++ projects. Includes instructions for generating the file using CMake. This is related to https://github.com/zed-industries/zed/discussions/6480 Release Notes: - N/A --------- Co-authored-by: Peter Tripp --- docs/src/languages/c.md | 14 ++++++++++++++ docs/src/languages/cpp.md | 14 ++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/docs/src/languages/c.md b/docs/src/languages/c.md index 4ae0a0d7c7..cd7191e8ea 100644 --- a/docs/src/languages/c.md +++ b/docs/src/languages/c.md @@ -49,3 +49,17 @@ You can trigger formatting via {#kb editor::Format} or the `editor: format` acti ``` See [Clang-Format Style Options](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) for a complete list of options. + +## Compile Commands + +For some projects Clangd requires a `compile_commands.json` file to properly analyze your project. This file contains the compilation database that tells clangd how your project should be built. + +### CMake Compile Commands + +With CMake, you can generate `compile_commands.json` automatically by adding the following line to your `CMakeLists.txt`: + +```cmake +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +``` + +After building your project, CMake will generate the `compile_commands.json` file in the build directory and clangd will automatically pick it up. diff --git a/docs/src/languages/cpp.md b/docs/src/languages/cpp.md index cb2c2c7da3..0a9eede258 100644 --- a/docs/src/languages/cpp.md +++ b/docs/src/languages/cpp.md @@ -98,3 +98,17 @@ Diagnostics: ``` For more advanced usage of clangd configuration file, take a look into their [official page](https://clangd.llvm.org/config.html). + +## Compile Commands + +For some projects Clangd requires a `compile_commands.json` file to properly analyze your project. This file contains the compilation database that tells clangd how your project should be built. + +### CMake Compile Commands + +With CMake, you can generate `compile_commands.json` automatically by adding the following line to your `CMakeLists.txt`: + +```cmake +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +``` + +After building your project, CMake will generate the `compile_commands.json` file in the build directory and clangd will automatically pick it up.