ตัวทำดัชนี C ++ ที่ดีที่สุด?


11

ฉันเพิ่งเปลี่ยนจากEclipse CDTเป็นSpacemacs ที่มีเลเยอร์ C ++เป็นสภาพแวดล้อมการพัฒนาของฉัน

จนถึงตอนนี้ ... สุดยอดมาก! แต่หนึ่งในสิ่งที่ฉันพลาดเกี่ยวกับ Eclipse เป็นของดัชนี

ตอนนี้ฉันใช้GNU Globalกับเลเยอร์gtags ปัญหาของ gtags คือมันเป็นระบบการแท็กไม่ใช่ตัวทำดัชนี

ตัวอย่าง:

การค้นหาการอ้างอิงสำหรับฟังก์ชั่นที่เรียกว่าsetในคลาสFieldจะส่งกลับการอ้างอิง 165 ครั้งใน codebase ของฉันซึ่งมีเพียงหนึ่งการอ้างอิงเท่านั้นField::set

การค้นหาการอ้างอิงถึงsetใน CDT ส่งคืนผลลัพธ์ 1 รายการ

มีวิธีแก้ปัญหาการจัดทำดัชนีที่ดีกว่าที่ฉันสามารถใช้ใน emacs หรือไม่?

การค้นหาออนไลน์ฉันพบหน้านี้ซึ่งมีตัวทำดัชนี 3 รายการที่ดังกราว

คำถาม:

  • ข้อเสนอเหล่านี้จะให้ประสบการณ์การทำดัชนีที่ดีขึ้นหรือไม่
  • ข้อเสนอแนะใดที่จะใช้?
  • มีทางเลือกที่ดีกว่าที่ไม่อยู่ในรายการหรือไม่?

บันทึก:

ฉันยังใช้clang-completeสำหรับการทำให้โค้ดเสร็จ แต่พบว่าช้ามาก ช้าอย่างไม่น่าเชื่อ ( ฉันไม่ใช่คนเดียวที่ได้สัมผัสสิ่งนี้ ) หากโซลูชันการจัดทำดัชนีใด ๆ ประสบปัญหาเดียวกันมันจะไม่ทำงาน


ไม่ใช่ว่าฉันทำงานกับโครงการ C ++ แต่บางทีคุณอาจพบเนื้อหาที่เป็นประโยชน์ใน emacs.zeef.com ภายใต้ส่วน C ++
ReneFroger

ฉันสังเกตว่าclang-indexerยังไม่มีการพัฒนาเมื่อเร็ว ๆ นี้และผู้เขียนบอกว่ามัน "หยาบ" - ดังนั้นฉันจะไม่ลองอีกสอง
Steve Lorimer

rtagsดูเหมือนว่าจะเป็นที่นิยมมากที่สุดของ 3 รายการ
Steve Lorimer

1
คำถามนี้มีส่วนเกี่ยวข้องกับ Emac หรือไม่?
PythonNut

1
ตามที่มีการใช้ถ้อยคำในปัจจุบันคำถามนี้เป็นเรื่องส่วนตัว โปรดแก้ไขโพสต์ของคุณเพื่อทำให้คำถามมีรูปธรรมมากขึ้น
Dan

คำตอบ:


4

ฉันสามารถบอกได้เฉพาะrtagsที่ฉันใช้อย่างแข็งขันในช่วง 1-2 ปีที่ผ่านมา

rtags ทำงานตามที่คาดไว้ มันเป็นคอมไพเลอร์และให้รหัสนำทางที่ถูกต้อง บางสิ่งที่ฉันกำลังมองหา 10 ปีที่ผ่านมาในฐานะผู้ใช้ emacs

การติดตั้งอาจยุ่งยากเล็กน้อย ฉันขอแนะนำให้ดูที่ cmake-ide ซึ่งเป็นส่วนหนึ่งของการตั้งค่าโดยอัตโนมัติ https://github.com/atilaneves/cmake-ide

โพสต์บล็อกนี้ยังสามารถช่วย https://vxlabs.com 2016/04/11/step-by-step-guide-to-c-navigation-and-completion-with-emacs-and-the-clang-based- rtags /

นอกจากนี้คุณยังสามารถดู (หรือใช้) การกำหนดค่าของฉันเอง: https://github.com/jardon-u/dotfiles/blob/master/emacs.d/development/c/_init.el ฉันใช้การรวมกันของ cmake- IDE (การค้นพบโปรเจค), ประชด (สำหรับการเติมโค้ดให้สมบูรณ์) และ rtags (สำหรับการนำทางโค้ด) ฉันค่อนข้างมั่นใจว่าสิ่งนี้จะง่ายขึ้นเนื่องจากฟังก์ชั่นบางอย่างซ้อนทับกันระหว่างแต่ละโหมด แต่ผลลัพธ์นั้นอยู่ในระดับที่ฉันคาดหวังจาก IDE สมัยใหม่

rtags ยังให้บริการการปรับเปลี่ยนรหัสอีกด้วย แต่ก็มีข้อ จำกัด ค่อนข้างมาก (ส่วนใหญ่จะเปลี่ยนชื่อ)


1
เป็นเวลาสองปีแล้วที่คำตอบนี้ได้รับการยอมรับคุณยังใช้ rtags อยู่หรือไม่? ฉันอยากรู้ว่าเอกสารเกี่ยวกับการตั้งค่ามีการเปลี่ยนแปลงหรือง่ายขึ้น ข้อมูลอะไรบ้าง? คุณสามารถแชร์ไฟล์ติดตั้ง / กำหนดค่าของคุณได้ไหม
A_P

@A_P ด้วยเหตุผลบางอย่างฉันเห็นเฉพาะความคิดเห็นของคุณตอนนี้ ฉันยังใช้ rtags อยู่ คุณควรตรวจสอบหน้า cmake-ide อีกครั้ง + การตั้งค่าของฉัน (ลิงก์ในคำตอบ) ฉันยังติดตั้งอัตโนมัติเป็นส่วนใหญ่ ตรวจสอบ: github.com/jardon-u/dotfiles/blob/master/install.sh (แม้ว่า emacs อาจจะไม่ใช่เวอร์ชั่นล่าสุดฉันจะลองอัปเดตสิ่งนี้)
log0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.