ข้ามไปที่เนื้อหา
cd /languages
  • สคริปต์บน JVM
  • การเขียนโปรแกรม
  • รองรับ AST และสัญลักษณ์

Groovy บน Maguyva: กราฟโค้ดสำหรับ Gradle และ Jenkins

Maguyva รองรับ Groovy ด้วย AST สัญลักษณ์ และกราฟ เพื่อให้เอเจนต์ AI ติดตามคลาส โคลเชอร์ และการเรียกในแอป Groovy บิลด์ Gradle และไฟล์ Jenkinsfile ได้

จุดที่ Groovy ทำให้เครื่องมือ AI แบบผิวเผินสะดุด

Groovy มักอ่านแล้วเหมือนการตั้งค่า ในบิลด์ Gradle dependencies { implementation ... } คือลำดับการเรียกเมธอดพร้อมโคลเชอร์ และ Jenkinsfile แบบประกาศก็เป็นเช่นเดียวกัน บิลเดอร์เปลี่ยนชื่อใดก็ได้ให้เป็นการเรียก และ GDK เพิ่มเมธอดอย่าง each และ collect ให้ทุกออบเจกต์ เครื่องมือที่บันทึกทุกการเรียกจะจมอยู่ในสัญญาณรบกวนนี้

Maguyva กรองเลเยอร์ DSL และ GDK ออก เพื่อให้เมธอดและคลาสของคุณเองโดดเด่นขึ้นมา

Maguyva ดึงอะไรจาก Groovy ได้บ้าง

Maguyva ครอบคลุมไฟล์ .groovy และ .gradle รวมถึง Jenkinsfile คลาส ฟังก์ชัน และเมธอดถูกดึงออกมา และการอิมพอร์ตปรับนามแฝง import static และ as ให้เป็นมาตรฐาน บล็อกโคลเชอร์ท้ายการเรียกและตัวดำเนินการนำทางอย่างปลอดภัย ?. จะถูกตัดออกจากชื่อการเรียก ดังนั้น repo?.save(order) { ... } จึงถูกบันทึกเป็นการเรียก save การเรียกที่ไม่มีรีซีฟเวอร์ภายในคลาสจะถูกรีโซลฟ์ไปยังเมธอดของคลาสนั้นเอง

สัญญาณรบกวนถูกกรองเป็นชั้น ๆ

  • ชื่อจากไลบรารีมาตรฐาน Gradle และ Spock ประมาณ 140 ชื่อ เช่น dependencies, implementation, task, given, when, then และ Mock
  • เมธอด GDK ประมาณ 260 เมธอด เช่น each, collect, inject และ eachLine
  • ชื่อใน DSL ของบิลเดอร์ รวมถึงสเต็ปของ Jenkins อย่าง pipeline, stage, steps และ sh เมื่อใช้แบบบิลเดอร์แทนการเรียกพร้อมวงเล็บ
  • คำอธิบายประกอบของการแปลง AST และเฟรมเวิร์กอย่าง @CompileStatic, @Immutable และ @Autowired ซึ่งไม่เคยถูกบันทึกเป็นการเรียก

กราฟยังบันทึกการสืบทอด การสร้างอินสแตนซ์ และการอ่านและเขียน

ตัวอย่างพรอมต์สำหรับเอเจนต์

  • “ใครเรียก deployToStaging และเรียกจากไปป์ไลน์ไหนบ้าง” (find_symbol จากนั้น dependency_search ทิศทางขาเข้า)
  • “คลาสใดบ้างที่สืบทอดจาก BaseIntegrationSpec” (dependency_search)
  • “อธิบายว่างานรีลีสบิลด์และเผยแพร่อาร์ติแฟกต์อย่างไร” (get_task_context)

ข้อจำกัดที่ทราบ

  • เมธอดของ Groovy และฟังก์ชันอิสระใช้โหนดไวยากรณ์เดียวกัน ดังนั้นพรีเซ็ต methods ใน structural_search จึงไม่เลือกอะไรเลย ให้ใช้พรีเซ็ต functions หรือ find_symbol แทน
  • เมธอดของคุณที่มีชื่อตรงกับเมธอดของ GDK หรือ DSL เช่น collect หรือ stage อาจถูกกรองออกไปด้วย หากดูเหมือนผู้เรียกหายไป ให้ใช้ text_pattern_search

ขั้นตอนถัดไป

เชื่อมต่อรีโพซิทอรีด้วยคู่มือเริ่มต้นใช้งาน แล้วดูตารางการรองรับได้ที่หน้าความเข้ากันได้ สำหรับโค้ด JVM ที่บิลด์ของคุณคอมไพล์ ให้อ่านคู่มือภาษา Java และคู่มือภาษา Kotlin

เหมาะที่สุดสำหรับ

  • > บิลด์ Gradle ที่เขียนด้วย Groovy โดยมีตรรกะการบิลด์ร่วมกระจายอยู่ในหลายไฟล์ `.gradle`
  • > ไปป์ไลน์ Jenkins และไลบรารีที่ใช้ร่วมกัน ซึ่งเอเจนต์ต้องอ่านก่อนเปลี่ยน CI
  • > แอปพลิเคชัน Groovy บน JVM และชุดทดสอบ Spock

เวิร์กโฟลว์ของเอเจนต์

  • > ค้นหาผู้เรียกทั้งหมดของสเต็ปในไลบรารีที่ใช้ร่วมกันก่อนเปลี่ยนอาร์กิวเมนต์
  • > ติดตามว่าสคริปต์บิลด์ใดเรียกตัวช่วยที่ประกาศไว้ในไฟล์ `.gradle` ที่ใช้ร่วมกัน
  • > ทำแผนที่คลาสที่สืบทอดจากคลาสฐานก่อนรีแฟกเตอร์

รายละเอียดเอนจิน

  • > การรองรับ Groovy ครอบคลุมไฟล์ `.groovy`, `.gradle` และ `Jenkinsfile` บล็อกโคลเชอร์ และการนำทางอย่างปลอดภัย `?.` จะถูกตัดออกจากชื่อการเรียก
  • > ชื่อจากไลบรารีมาตรฐาน Gradle และ Spock ประมาณ 140 ชื่อ และเมธอด GDK ประมาณ 260 เมธอดถูกกรองออกจากความสัมพันธ์
  • > ชื่อใน DSL ของบิลเดอร์ รวมถึงสเต็ปของ Jenkins อย่าง `stage` และ `sh` ถูกกรองออกเมื่อใช้แบบบิลเดอร์ คำอธิบายประกอบไม่เคยถูกบันทึกเป็นการเรียก

จุดเริ่มต้น MCP ที่มีประโยชน์

  • find_symbol

    ใช้กับสเต็ปในไลบรารีที่ใช้ร่วมกัน ตัวช่วยการบิลด์ หรือคลาสเมื่อต้องการนิยามและผู้เรียก

  • dependency_search

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

  • text_pattern_search

    ใช้กับการเรียก DSL และเมธอด GDK ที่ถูกกรองออกจากกราฟ

คู่มือที่เกี่ยวข้อง

ส่วนอื่นของรีโพที่เกี่ยวข้อง

ดูคู่มือทั้งหมด
ความลึกระดับองค์กร การเขียนโปรแกรม

การรองรับ Java ใน Maguyva: โค้ดอินเทลลิเจนซ์สำหรับรีโพซิทอรีระดับองค์กร

มีประโยชน์เมื่อรีโพเต็มไปด้วย Spring service, เฟรมเวิร์กภายใน และโค้ดที่รอดผ่านหลายยุคขององค์กร

รองรับ AST และสัญลักษณ์ การแยกวิเคราะห์ AST การสกัดสัญลักษณ์ ความสัมพันธ์ในกราฟ

นามสกุลไฟล์

.java

เปิดคู่มือ
JVM ยุคใหม่ การเขียนโปรแกรม

Kotlin บน Maguyva: กราฟโค้ดสำหรับ Android และ JVM

Kotlin ซ่อนการเชื่อมต่อไว้มากมายในรีซีฟเวอร์ และแลมบ์ดา กราฟช่วยให้มองเห็นอีกครั้ง

รองรับ AST และสัญลักษณ์ การแยกวิเคราะห์ AST การสกัดสัญลักษณ์ ความสัมพันธ์ในกราฟ

นามสกุลไฟล์

.kt, .kts

เปิดคู่มือ