ไฟล์ TAGS มีคำจำกัดความ
TAGSไฟล์มีรายชื่อของที่ทำงานและเรียนที่กำหนดไว้ โดยปกติจะอยู่ในรูทของโปรเจ็กต์และมีลักษณะดังนี้:
^L
configure,3945
as_fn_success () { as_fn_return 0; }^?as_fn_success^A180,5465
as_fn_failure () { as_fn_return 1; }^?as_fn_failure^A181,5502
as_fn_ret_success () { return 0; }^?as_fn_ret_success^A182,5539
as_fn_ret_failure () { return 1; }^?as_fn_ret_failure^A183,5574
สิ่งนี้ทำให้ Emacs สามารถค้นหาคำจำกัดความได้ การนำทางขั้นพื้นฐานมาพร้อมกับfind-tagแต่etags-selectมี UI ที่ดีกว่าเมื่อมีการแข่งขันหลายรายการ
คุณยังสามารถใช้ไฟล์ TAGS เพื่อเติมโค้ดได้อีกด้วย ยกตัวอย่างเช่นetags ของ บริษัท ส่วนหลังไฟล์ใช้แท็ก
ไฟล์ TAGS สามารถสร้างขึ้นโดยเครื่องมือต่างๆ
ctags(เดิมเรียกว่า 'แท็กสากล' หรือ 'แท็กที่อุดมสมบูรณ์') สามารถสร้างไฟล์ TAGS และรองรับภาษาที่หลากหลายที่สุด มันได้รับการดูแลอย่างแข็งขันบน github
Emacs มาพร้อมกับสองโปรแกรมที่สร้างไฟล์ TAGS เรียกว่าetagsและctags. Emacs ctagsเป็นเพียงetagsอินเทอร์เฟซ CLI เดียวกับ ctags สากล เพื่อหลีกเลี่ยงความสับสน distros หลายแห่งเปลี่ยนชื่อโปรแกรมเหล่านี้ (เช่นctags.emacs24ใน Debian)
นอกจากนี้ยังมีเครื่องมือเฉพาะภาษาสำหรับสร้างไฟล์ TAGS เช่นjsctagsและhasktags.
รูปแบบไฟล์อื่น ๆ
ebrowseเป็นโปรแกรม C ที่มาพร้อมกับ Emacs ทำดัชนีรหัส C / C ++ และสร้างBROWSEไฟล์ ebrowse.el ให้คำจำกัดความและความสมบูรณ์ของการค้นหาตามปกติ คุณยังสามารถเปิดBROWSEไฟล์ได้โดยตรงใน Emacs เพื่อดูภาพรวมของคลาส / ฟังก์ชันที่กำหนดโค้ดเบส
GNU ทั่วโลกมีรูปแบบของตัวเองฐานข้อมูลซึ่งประกอบด้วยGTAGS, GRTAGSและGPATHไฟล์ คุณสามารถสร้างไฟล์เหล่านี้ด้วยgtagsคำสั่งซึ่งจะแยกวิเคราะห์รหัส C / C ++ สำหรับภาษาอื่น GNU Global สามารถอ่านไฟล์ที่สร้างโดยแท็กสากล
GNU Global ยังมีอินเทอร์เฟซ CLI สำหรับถามคำถามที่ซับซ้อนมากขึ้นเช่น 'สัญลักษณ์นี้กล่าวถึงที่ไหน?' มันมาพร้อมกับแพ็คเกจ Emacs gtags.el แต่ggtags.elยังเป็นที่นิยมในการเข้าถึงฐานข้อมูล GNU Global
Cscopeมีความคล้ายคลึงกับ GNU Global: มันแยกวิเคราะห์ C / C ++ เป็นรูปแบบฐานข้อมูลของตัวเอง นอกจากนี้ยังสามารถตอบคำถามเช่น 'ค้นหาผู้โทร / ผู้โทรทั้งหมดของ funciton นี้'
ดูเพิ่มเติมนี้การอภิปราย HN เปรียบเทียบระดับโลกและ cscope
โครงการไคลเอนต์ / เซิร์ฟเวอร์
rtagsแยกวิเคราะห์และจัดทำดัชนี C / C ++ โดยใช้เซิร์ฟเวอร์ถาวร มันใช้ตัวแยกวิเคราะห์เสียงดังดังนั้นจึงจัดการกับ C ++ ได้ดีจริงๆ มันมาพร้อมกับแพ็คเกจ Emacs เพื่อสอบถามเซิร์ฟเวอร์
google-gtagsเป็นโครงการที่จะจัดเก็บไฟล์ TAGS ขนาดใหญ่บนเซิร์ฟเวอร์ เมื่อคุณสอบถามเซิร์ฟเวอร์เซิร์ฟเวอร์จะให้ไฟล์ TAGS ย่อยที่เกี่ยวข้องกับการค้นหาของคุณ
ความหมาย (CEDET)
Semantic เป็นแพ็คเกจ Emacs ในตัวที่มีตัวแยกวิเคราะห์สำหรับ C / C ++ ดังนั้นจึงสามารถค้นหาคำจำกัดความได้เช่นกัน นอกจากนี้ยังสามารถนำเข้าข้อมูลจากไฟล์ TAGS ฐานข้อมูล csope และแหล่งอื่น ๆ CEDET ยังมีฟังก์ชันรูปแบบ IDE ที่ใช้ข้อมูลนี้เช่นการสร้างไดอะแกรม UML ของลำดับชั้นของคลาส
GTagsโครงการที่คุณเชื่อมโยงไปยังค่อนข้างตาย ถ้ามีคนพูดถึงgtagsอาจหมายถึง GNU Global