clangd を使用した LSP の設定

背景

Emacs、Vim、VS Code などのエディタは、LSP(言語サーバー プロトコル)を介して、コード ナビゲーション、コード補完、インライン コンパイラ エラー メッセージなどの機能をサポートしています。LSP をサポートする一般的な言語サーバーには clangd があります。これは、プロジェクト内の各ファイルのコンパイル コマンドのレコードを含む JSON ファイルである compile_commands.json の存在に依存します。

XLA ソースコードの compile_commands.json を生成するにはどうすればよいですか?

build_tools/lint/generate_compile_commands.py スクリプトを使用します。XLA リポジトリのルートから bazel aquery "mnemonic(CppCompile, //xla/...)" --output=jsonproto | python3 build_tools/lint/generate_compile_commands.py を呼び出すと、compile_commands.json ファイルが所定の場所に生成されます。