Jedi เป็นเครื่องมือวิเคราะห์แบบคงที่สำหรับ Python ที่โดยทั่วไปใช้ในปลั๊กอิน IDEs/บรรณาธิการ เจไดมุ่งเน้นไปที่การเติมข้อความอัตโนมัติและฟังก์ชันข้ามไป คุณสมบัติอื่นๆ ได้แก่ การปรับโครงสร้างใหม่ การค้นหาโค้ด และการค้นหาข้อมูลอ้างอิง
เจไดมี API ง่ายๆ ที่จะใช้งาน มีการใช้งานอ้างอิงเป็น VIM-Plugin การเติมข้อความอัตโนมัติใน REPL ของคุณก็เป็นไปได้เช่นกัน โดย IPython จะใช้มันโดยกำเนิด และสำหรับ CPython REPL คุณสามารถติดตั้งได้ เจไดได้รับการทดสอบอย่างดีและแมลงน่าจะหายาก
ปัจจุบัน Jedi สามารถใช้ได้กับบรรณาธิการ/โปรเจ็กต์ต่อไปนี้:
และอีกมากมาย!
มีเซิร์ฟเวอร์ภาษาไม่กี่แห่งที่ใช้เจได:
นี่คือรูปภาพบางส่วนที่ถ่ายจาก jedi-vim:
เสร็จสิ้นเกือบทุกอย่าง:
เอกสารประกอบ:
รับเวอร์ชันล่าสุดจาก GitHub (สาขาหลักควรมีความเสถียร/ใช้งานได้เสมอ)
เอกสารมีอยู่ที่ https://jedi.readthedocs.org/en/latest/ คำขอดึงข้อมูลพร้อมการปรับปรุงและ/หรือการแก้ไขนั้นยอดเยี่ยมมากและยินดีเป็นอย่างยิ่ง เจไดใช้การกำหนดเวอร์ชันเชิงความหมาย
หากคุณต้องการติดตามข่าวสาร ล่าสุด โปรด สมัคร รับรายชื่ออีเมลนี้: https://groups.google.com/g/jedi-announce หากต้องการสมัครสมาชิก คุณสามารถส่งอีเมลเปล่าไปที่ [email protected]
คุณสามารถยื่นปัญหาและคำถามในตัวติดตามปัญหา <https://github.com/davidhalter/jedi/> หรือคุณสามารถถาม Stack Overflow ด้วยป้ายกำกับ python-jedi
ตรวจสอบเอกสาร
คุณสมบัติของเจไดแสดงไว้ที่นี่: คุณสมบัติ
คุณสามารถรัน Jedi บน Python 3.6+ ได้ แต่ควรเข้าใจโค้ดที่เก่ากว่าเวอร์ชันเหล่านั้นด้วย นอกจากนี้คุณควรจะสามารถใช้ Virtualenvs ได้เป็นอย่างดี
เคล็ดลับในการใช้เจไดอย่างมีประสิทธิภาพสามารถพบได้ที่นี่
คุณสามารถค้นหาเอกสารที่ครอบคลุมสำหรับ API ได้ที่นี่
มีคำสั่งดังต่อไปนี้:
jedi.Script.goto
jedi.Script.infer
jedi.Script.help
jedi.Script.complete
jedi.Script.get_references
jedi.Script.get_signatures
jedi.Script.get_context
วัตถุที่ส่งคืนนั้นทรงพลังมากและเป็นสิ่งที่คุณต้องการจริงๆ
เจไดพึ่งพา IPython การเติมข้อความอัตโนมัติใน IPython ด้วย Jedi จึงเป็นไปได้โดยไม่ต้องมีการกำหนดค่าเพิ่มเติม
นี่คือวิดีโอตัวอย่างว่าการเสร็จสิ้น REPL จะเป็นอย่างไร สำหรับ python
shell คุณสามารถเปิดใช้งานการเติมแท็บใน REPL ได้
สำหรับการวิเคราะห์สแตติกหลายรูปแบบ คุณสามารถลองใช้ jedi.Script(...).get_names
มันจะส่งคืนรายชื่อที่คุณสามารถกรองและใช้งานได้ นอกจากนี้ยังมีวิธีแสดงรายการข้อผิดพลาดทางไวยากรณ์ในไฟล์: jedi.Script.get_syntax_errors
เจไดสนับสนุนการปรับโครงสร้างใหม่ดังต่อไปนี้:
jedi.Script.inline
jedi.Script.rename
jedi.Script.extract_function
jedi.Script.extract_variable
มีการสนับสนุนสำหรับการค้นหาโมดูลด้วย jedi.Script.search
และการค้นหาโปรเจ็กต์สำหรับ jedi.Project.search
วิธีค้นหาคือระบุชื่อ เช่น foo
หรือใช้ไวยากรณ์จุด เช่น foo.bar
นอกจากนี้ คุณยังสามารถระบุประเภท API เช่น class foo.bar.Bar
ได้ นอกจากนี้ยังมีฟังก์ชัน jedi.Script.complete_search
และ jedi.Project.complete_search
มีเอกสารการพัฒนาที่ค่อนข้างดีและกว้างขวาง
ชุดทดสอบใช้ pytest
:
pip ติดตั้ง pytest
หากคุณต้องการทดสอบเฉพาะเวอร์ชัน Python ที่เฉพาะเจาะจง (เช่น Python 3.8) มันง่ายเหมือน:
หลาม 3.8 -m pytest
สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดไปที่เอกสารประกอบการทดสอบ
ขอบคุณมากสำหรับผู้มีส่วนร่วมทุกคน!