使用 clangd 設定 LSP

背景

Emacs、Vim 或 VS Code 等編輯器會透過 LSP (語言伺服器通訊協定) 支援程式碼導覽、程式碼完成、內嵌編譯器錯誤訊息等功能。支援 LSP 的常見語言伺服器是 clangd,這需要搭配 compile_commands.json 使用,JSON 檔案含有專案中每個檔案的編譯指令記錄。

如何為 XLA 原始碼產生 compile_commands.json

使用 build_tools/lint/generate_compile_commands.py 指令碼。以下是從 XLA 存放區根目錄啟動,並在原地產生 compile_commands.json 檔案的例子:bazel aquery "mnemonic(CppCompile, //xla/...)" --output=jsonproto | python3 build_tools/lint/generate_compile_commands.py