Language Server Support

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.