ข้อมูลเบื้องต้น
เครื่องมือแก้ไข เช่น Emacs, Vim หรือ VS Code รองรับฟีเจอร์อย่างเช่น การไปยังส่วนต่างๆ ของโค้ด การเติมโค้ด ข้อความแสดงข้อผิดพลาดของคอมไพเลอร์ในบรรทัด และอื่นๆ ผ่านทาง LSP ซึ่งเป็นโปรโตคอลเซิร์ฟเวอร์ภาษา เซิร์ฟเวอร์ภาษาทั่วไปที่รองรับ LSP คือ clangd ซึ่งอาศัยการมี compile_commands.json
ซึ่งเป็นไฟล์ JSON ที่มีบันทึกคำสั่งคอมไพล์สำหรับไฟล์แต่ละไฟล์ในโปรเจ็กต์
ฉันจะสร้าง compile_commands.json
สำหรับซอร์สโค้ด XLA ได้อย่างไร
ใช้สคริปต์ 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