Introduce a standalone tool to remap paths inside clangd background index files. This allows users to pay the cost of generating a full background index once, then reuse the background index across multiple clients. Each client rewrites the background index in place after copying the original, specifying the path(s) to be remapped. This is an alternative approach to the dynamic path remapping proposed in #180285. Fixes clangd/clangd#847 Assisted-by: claude
clangd
clangd is a language server, and provides C++ IDE features to editors. This is not its documentation.
- the website is https://clangd.llvm.org/.
- the bug tracker is https://github.com/clangd/clangd/issues
- the source code is hosted at https://github.com/llvm/llvm-project/tree/main/clang-tools-extra/clangd.
- the website source code is at https://github.com/llvm/clangd-www/
Communication channels
If you have any questions or feedback, you can reach community and developers through one of these channels:
- chat: #clangd room hosted on LLVM's Discord channel.
- user questions and feature requests can be asked in the clangd topic on LLVM Discussion Forums
Building and testing clangd
For a minimal setup on building clangd:
-
Clone the LLVM repo to
$LLVM_ROOT. -
Create a build directory, for example at
$LLVM_ROOT/build. -
Inside the build directory run:
cmake $LLVM_ROOT/llvm/ -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra".- We suggest building in
Releasemode as building DEBUG binaries requires considerably more resources. You can check Building LLVM with CMake documentation for more details about cmake flags. - In addition to that using
Ninjaas a generator rather than defaultmakeis preferred. To do that consider passing-G Ninjato cmake invocation. - Finally, you can turn on assertions via
-DLLVM_ENABLE_ASSERTS=On.
- We suggest building in
-
Afterwards you can build clangd with
cmake --build $LLVM_ROOT/build --target clangd, similarly run tests by changing target tocheck-clangd.