ไฟล์ 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