tl;dr: If you want to just know the method, skip to How to
section
Clangd is a state-of-the-art C/C++ LSP that can be used in every popular text editors like Neovim, Emacs or VS Code. Even CLion uses clangd under the hood. Unfortunately, clangd requires compile_commands.json
to work, and the only way to painlessly generate it is to use CMake.
But what if I tell you you can quickly hack your way around that, and generate compile_commands.json
for any project, no matter how compilcated? I have used that way at work for years, originaly because I used CLion which supported only CMake projects - but now I use that method succesfully with clangd and Neovim.
Basically what we need to achieve is to create a CMake file that will generate a compile_commands.json
file with information about: