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

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

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

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

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

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

Visual Studio Code

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

ฟีเจอร์:

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

ค้นหา ปลั๊กอินใน Visual Studio 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++)

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

Java

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

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

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

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

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