การผสานรวม Bazel กับ IDE

หน้านี้จะอธิบายวิธีผสานรวม Bazel กับ IDE เช่น IntelliJ, Android Studio และ CLion (หรือสร้างปลั๊กอิน IDE ของคุณเอง) นอกจากนี้ยังมีลิงก์ไปยังรายละเอียดการติดตั้งและปลั๊กอิน

IDE ผสานรวมกับ Bazel ได้หลายวิธี ตั้งแต่ฟีเจอร์ที่อนุญาตให้ดำเนินการ Bazel จากภายใน IDE ไปจนถึงการรับรู้โครงสร้าง Bazel เช่น การไฮไลต์ไวยากรณ์ของไฟล์ BUILD

หากคุณสนใจพัฒนาปลั๊กอินตัวแก้ไขหรือ IDE สำหรับ Bazel โปรด เข้าร่วมแชแนล #ide ใน Bazel Slack หรือเริ่ม การสนทนาใน GitHub

IDE และตัวแก้ไข

IntelliJ, Android Studio และ CLion

ปลั๊กอินอย่างเป็นทางการ สำหรับ IntelliJ, Android Studio และ CLion ปลั๊กอินนี้เป็นแบบโอเพนซอร์ส

นี่คือปลั๊กอินเวอร์ชันโอเพนซอร์สที่ใช้ภายใน Google

ฟีเจอร์:

  • ทำงานร่วมกับปลั๊กอินเฉพาะภาษา ภาษาที่รองรับ ได้แก่ Java, Scala และ Python
  • นำเข้าไฟล์ BUILD ไปยัง IDE พร้อมการรับรู้ความหมายของเป้าหมาย Bazel
  • ทำให้ IDE ของคุณรู้จัก Starlark ซึ่งเป็นภาษาที่ใช้สำหรับไฟล์ BUILD และ .bzl ของ Bazel
  • สร้าง ทดสอบ และเรียกใช้ไบนารีได้โดยตรงจาก IDE
  • สร้างการกำหนดค่าสำหรับการแก้ไขข้อบกพร่องและการเรียกใช้ไบนารี

หากต้องการติดตั้ง ให้ไปที่เบราว์เซอร์ปลั๊กอินของ IDE แล้วค้นหา Bazel

หากต้องการติดตั้งเวอร์ชันเก่าด้วยตนเอง ให้ดาวน์โหลดไฟล์ ZIP จากที่เก็บปลั๊กอินของ JetBrains แล้วติดตั้งไฟล์ ZIP จากเบราว์เซอร์ปลั๊กอินของ IDE โดยทำดังนี้

Xcode

rules_xcodeproj, Tulsi และ XCHammer จะสร้างโปรเจ็กต์ Xcode จากไฟล์ Bazel BUILD

Visual Studio Code

ปลั๊กอินอย่างเป็นทางการสำหรับ VS Code

ฟีเจอร์:

  • แผนผังเป้าหมายการสร้าง Bazel
  • โปรแกรมแก้ไขข้อบกพร่อง Starlark สำหรับไฟล์ .bzl ระหว่างการสร้าง (ตั้งค่าเบรกพอยต์, สเต็ปผ่านโค้ด, ตรวจสอบตัวแปร และอื่นๆ)

ค้นหา ปลั๊กอินใน Visual Studio Marketplace หรือ OpenVSX Marketplace ปลั๊กอินนี้เป็นแบบโอเพนซอร์ส

ดูเพิ่มเติมที่การเติมข้อความอัตโนมัติสำหรับซอร์สโค้ด

Atom

ค้นหาแพ็กเกจ language-bazel ในเครื่องมือจัดการแพ็กเกจ Atom

ดูเพิ่มเติมที่การเติมข้อความอัตโนมัติสำหรับซอร์สโค้ด

Vim

ดู bazelbuild/vim-bazel ใน GitHub

ดูเพิ่มเติมที่การเติมข้อความอัตโนมัติสำหรับซอร์สโค้ด

Emacs

ดู bazelbuild/bazel-emacs-mode ใน GitHub

ดูเพิ่มเติมที่การเติมข้อความอัตโนมัติสำหรับซอร์สโค้ด

Visual Studio

Lavender เป็นโปรเจ็กต์ทดลองสำหรับการ สร้างโปรเจ็กต์ Visual Studio ที่ใช้ Bazel ในการสร้าง

คราส

Bazel Eclipse Feature เป็นชุดปลั๊กอินสำหรับการนำเข้าแพ็กเกจ Bazel ไปยังพื้นที่ทำงาน Eclipse เป็น โปรเจ็กต์ Eclipse

การเติมข้อความอัตโนมัติสำหรับซอร์สโค้ด

ตระกูลภาษา C (C++, C, Objective-C, Objective-C++ และ CUDA)

kiron1/bazel-compile-commands เรียกใช้ bazel-compile-commands //... ในพื้นที่ทำงาน Bazel เพื่อสร้างไฟล์ compile_commands.json ไฟล์ compile_commands.json ช่วยให้เครื่องมือต่างๆ เช่น clang-tidy, clangd (LSP) และ IDE อื่นๆ สามารถเติมข้อความอัตโนมัติ การนำทางอัจฉริยะ การแก้ไขด่วน และอื่นๆ เครื่องมือนี้เขียนด้วยภาษา C++ และใช้เอาต์พุต Protobuf ของ Bazel เพื่อแยกคำสั่งคอมไพล์

hedronvision/bazel-compile-commands-extractor ช่วยให้สามารถเติมข้อความอัตโนมัติ การนำทางอัจฉริยะ การแก้ไขด่วน และอื่นๆ ในตัวแก้ไขที่ขยายได้หลากหลาย รวมถึง VSCode, Vim, Emacs, Atom และ Sublime เครื่องมือนี้ช่วยให้เซิร์ฟเวอร์ภาษา เช่น clangd และ ccls รวมถึงเครื่องมือประเภทอื่นๆ สามารถใช้ประโยชน์จากความเข้าใจของ Bazel เกี่ยวกับวิธีคอมไพล์โค้ด cc และ objc ซึ่งรวมถึงวิธีกำหนดค่าการคอมไพล์ข้ามแพลตฟอร์มสำหรับแพลตฟอร์มอื่นๆ

Java

georgewfraser/java-language-server - Java Language Server (LSP) ที่รองรับโปรเจ็กต์ที่สร้างด้วย Bazel

เรียกใช้การสร้างและทดสอบโดยอัตโนมัติเมื่อมีการเปลี่ยนแปลงไฟล์

Bazel Watcher เป็น เครื่องมือสำหรับการสร้างเป้าหมาย Bazel เมื่อไฟล์ต้นฉบับมีการเปลี่ยนแปลง

การสร้างปลั๊กอิน IDE ของคุณเอง

อ่านบล็อกโพสต์**การรองรับ IDE** เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ Bazel API ที่จะใช้เมื่อสร้างปลั๊กอิน IDE