Como configurar o LSP com o clangd

Contexto

Editores como Emacs, Vim ou VS Code oferecem suporte a recursos como navegação de código, preenchimento automático, mensagens de erro do compilador inline e outros, usando o LSP, o protocolo do servidor da linguagem. Um servidor de linguagem comum com suporte a LSP é 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 XLA?

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