Konfigurowanie dostawcy usług językowych z użyciem clangd

Tło

Edytorzy, tacy jak Emacs, Vim czy VS Code, obsługują funkcje takie jak nawigacja po kodzie, uzupełnianie kodu, wiadomości o błędach kompilatora wstawiane w tekście i inne za pomocą protokołu LSP (Language Server Protocol). Popularnym serwerem językowym obsługującym dostawców usług językowych jest clangd, który opiera się na obecności compile_commands.json – pliku JSON z rekordem poleceń kompilacji dla każdego pliku w projekcie.

Jak wygenerować compile_commands.json dla kodu źródłowego XLA?

Użyj skryptu build_tools/lint/generate_compile_commands.py. To wywołanie z poziomu głównego repozytorium XLA generuje plik compile_commands.json: bazel aquery "mnemonic(CppCompile, //xla/...)" --output=jsonproto | python3 build_tools/lint/generate_compile_commands.py