Some questions regarding LSP integration

Alexander Neundorf neundorf at
Wed Feb 9 22:26:28 GMT 2022


you may have noticed I'm catching up a bit...

Do I understand correctly that kate starts clangd, and then when editing some 
source file foo.cpp, it asks clangd for information about foo.cpp.

clangd then tries to "compile" foo.cpp by executing a compile command, which 
it tries to get from compile_commands.json.
For a file /home/alex/src/Project/foo.cpp, clangd searches for 
compile_commands.json in /home/alex/src/Project/, /home/alex/src/, /home/
alex/, /home/, / and /home/alex/src/Project/build/. Did I understand this 
correctly ? (so this will often fail)

IIRC, in the project plugin, we know if a file is part of a project, and the 
project knows where the build and the source directories are.
So kate could point clangd to the top level build directory of the source 
file. According to the clangd documentation it's currently not possible to 
tell clangd where the compile_commands.json file is. Correct ?

Then, in the compile_commands.json file, the calls to the actual compile are 
listed, e.g. using g++. What does clangd do with them ? Simply skip the 
compile executable and "hope" that clang understands the rest of the command 
line ?


More information about the KWrite-Devel mailing list