Como configurar o LSP com o clangd

Contexto

Editores como Emacs, Vim ou VS Code são compatíveis com recursos como navegação e preenchimento de código, mensagens de erro do compilador inline e outros usando o LSP (link em inglês), o protocolo do servidor de linguagem. Um servidor de linguagem comum compatível com LSP é o clangd, que depende da presença de compile_commands.json, um arquivo JSON com um registro dos comandos de compilação para cada arquivo em um projeto.

Como gerar compile_commands.json para o código-fonte do XLA?

Use o script build_tools/lint/generate_compile_commands.py. A seguinte invocação da raiz do repositório XLA gera um arquivo compile_commands.json no lugar: bash bazel aquery "mnemonic(CppCompile, //xla/...)" --output=jsonproto | \ python3 build_tools/lint/generate_compile_commands.py