Language Server Support#
Within L4Re’s build infrastructure, language server support (LSP) is available for both the microkernel and user-level.
Generally, a language server like clangd
needs an input file
compile_commands.json
to get information on how files are processed.
User-level#
User-level components are built out of combined source tree. The build
system generates a compile_commands.json
file by calling this from your
build directory:
$ make compile_commands.json
After this, a compile_commands.json
file is available in the L4Re
source(!) directory.
Microkernel#
For the microkernel, you call the same in a build directory of the microkernel:
$ make compile_commands.json
Which generates a compile_commands.json
in the build directory.
There is one more thing to consider regarding LSP support for the microkernel. As it uses preprocess to generate the files to be compiled by the compiler, the source code files contain information that cannot be directly understood by LSP servers. However, there is a proxy available that translates between the actual source code files and the language server: fiasco-lsp.