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जब कई मैच होते हैं तो एक अच्छे यूआई प्रदान करता है।
आप कोड पूर्णता के लिए TAGS फ़ाइलों का उपयोग भी कर सकते हैं। उदाहरण के लिए, कंपनी के etags बैकएंड TAGS फ़ाइलों का उपयोग करता है ।
TAGS फाइलें विभिन्न उपकरणों द्वारा निर्मित की जा सकती हैं
ctags(पूर्व में 'यूनिवर्सल ctags' या 'exuberant ctags' के रूप में जाना जाता है) TAGS फ़ाइलों को जनरेट कर सकता है और भाषाओं की व्यापक श्रेणी का समर्थन करता है। यह सक्रिय रूप से जीथब पर बनाए रखा जाता है।
एमएसीएस दो कार्यक्रमों के साथ जहाजों को बनाता है जो टीएजीएस फाइलें उत्पन्न करते हैं, जिन्हें कहा जाता है etagsऔर ctags। Emacs ' ctagsबस है etagsसार्वभौमिक ctags के रूप में ही CLI इंटरफेस के साथ। भ्रम से बचने के लिए, कई डिस्ट्रो इन कार्यक्रमों का नाम बदल देते हैं (जैसे ctags.emacs24डेबियन पर)।
TAGS फ़ाइलों को बनाने के लिए भाषा विशिष्ट उपकरण भी हैं, जैसे jsctagsऔर hasktags।
अन्य फ़ाइल स्वरूप
ebrowseएक सी कार्यक्रम Emacs के साथ भेज दिया है। यह C / C ++ कोड को अनुक्रमित करता है और एक BROWSEफ़ाइल उत्पन्न करता है। ebrowse.el सामान्य रूप से परिभाषा और पूर्णता प्रदान करता है। आप BROWSEक्लासेस / फ़ंक्शन के कोडब्यू को परिभाषित करने के लिए फ़ाइल को सीधे Emacs में खोल सकते हैं ।
जीएनयू वैश्विक अपने स्वयं के डेटाबेस प्रारूप, एक के होते हैं जो GTAGS, GRTAGSऔर GPATHफ़ाइल। आप इन फ़ाइलों को gtagsकमांड के साथ उत्पन्न कर सकते हैं , जो C / C ++ कोड को पार्स करते हैं। अन्य भाषाओं के लिए, GNU ग्लोबल सार्वभौमिक ctags द्वारा उत्पन्न फ़ाइलों को पढ़ सकता है।
जीएनयू ग्लोबल अधिक परिष्कृत प्रश्न पूछने के लिए सीएलआई इंटरफ़ेस भी प्रदान करता है, जैसे 'यह प्रतीक कहां है?'। यह Emacs पैकेज gtags.el के साथ जहाज करता है, लेकिन ggtags.el GNU Global डेटाबेस तक पहुँचने के लिए भी लोकप्रिय है।
Cscope GNU Global की भावना के समान है: यह C / C ++ को अपने डेटाबेस प्रारूप में पार्स करता है। यह all इस कॉलरटोन के सभी कॉलर्स / कैलिस को खोजने ’जैसे सवालों का जवाब भी दे सकता है।
इस HN चर्चा को वैश्विक और cscope की तुलना में भी देखें ।
क्लाइंट / सर्वर प्रोजेक्ट
एक निरंतर सर्वर का उपयोग करके rtags पर्स और इंडेक्स C / C ++। यह क्लैंग पार्सर का उपयोग करता है, इसलिए यह सी ++ को वास्तव में अच्छी तरह से संभालता है। यह सर्वर को क्वेरी करने के लिए Emacs पैकेज के साथ जहाज करता है।
google-gtags एक प्रोजेक्ट था जहां एक बड़ी TAGS फ़ाइल को सर्वर पर संग्रहीत किया जाएगा। जब आप सर्वर से पूछताछ करते हैं, तो यह TAGS फ़ाइल का एक सबसेट प्रदान करेगा जो आपकी खोज के लिए प्रासंगिक था।
शब्दार्थ (CEDET)
सिमेंटिक एक अंतर्निहित एमएसीएस पैकेज है जिसमें सी / सी ++ के लिए एक पार्सर होता है, इसलिए यह परिभाषाएं भी पा सकता है। यह TAGS फ़ाइलों, csope डेटाबेसों और अन्य स्रोतों से भी डेटा आयात कर सकता है। CEDET में IDE शैली की कार्यक्षमता भी शामिल है जो इस डेटा का उपयोग करती है, जैसे कि श्रेणी पदानुक्रमों का UML चित्र उत्पन्न करना।
GTagsपरियोजना से आप जुड़े हैं, वह काफी मृत है। अगर किसी के बारे में बात कर रहे हैंgtags, वे शायद GNU ग्लोबल का उल्लेख कर रहे हैं।