2010-09-24 6 views
7
द्वारा उत्पन्न फ़ाइल

मेरे Emacs संस्करण 23.2.1 है हालांकि मैं बैकएंड GTAGS उपयोग करने के लिए बदलने के लिए निम्नलिखित का इस्तेमाल किया बनाने के लिए। ('अर्थात्/डीबी-ग्लोबल' की आवश्यकता है (semanticdb-enable-gnu-global-डेटाबेस 'सी-मोड) (semanticdb-enable-gnu-global-डेटाबेस' C++ - मोड) मैंने एक GTAGS फ़ाइल जेनरेट करने का प्रयास किया अर्थपूर्ण के बैकएंड के रूप में इस्तेमाल किया जाना है। हालांकि, हर जब मैं एक सी फ़ाइल को खोलने, अर्थ अभी भी फाइलों GTAGS फ़ाइल का उपयोग कर के बिना पार्सिंग है।कैसे Emacs सिमेंटिक उपयोग टैग GTAGS

  1. क्या अर्थात् अंतर्निहित अंतर्निहित पार्सर की बजाय GTAGS फ़ाइल का उपयोग करना संभव है? मैंने पाया कि अंतर्निर्मित पार्सर बहुत सटीक नहीं है।

  2. क्या यह संभव है परियोजना गुंजाइश निर्दिष्ट किए बिना GTAGS फ़ाइल उपयोग कैसे करें? मेरे मामले में, मैं GTAGS/usr/शामिल है जो मानक होना चाहिए शामिल Emacs की राह में फाइल डालने की कोशिश की। लेकिन सेमेन्टिक्स इसका उपयोग नहीं कर रहा है।

उत्तर

7

अर्थात् टैग्स उत्पन्न करने के लिए जीएजीएस फ़ाइल का उपयोग नहीं करता है जो सीधे कूद या स्मार्ट पूर्णता जैसी सुविधाओं के लिए उपयोग करेगा। अर्थात् डीबी के लिए जीएनयू ग्लोबल बैकएंड एक विशाल नाम तालिका के रूप में GTAGS का उपयोग करेगा। इस प्रकार यदि आप नाम से एक प्रतीक खोजने की जरूरत है, GTAGS अर्थ बता देंगे कि वह कहाँ है, और अर्थ तो उन फ़ाइलों को ही पार्स जाएगा और सीधे जानकारी प्राप्त करने के लिए।

कारण जीएजीएस का उपयोग सीधे प्रतिस्थापन पार्सर के रूप में नहीं किया जाता है क्योंकि जीएजीएस में जानकारी सेमैंटिक जरूरतों के संचालन के लिए अपर्याप्त है, क्योंकि इसमें डेटाटाइप जानकारी, तर्क पार्सिंग और स्थानीय संदर्भ पार्सिंग शामिल नहीं है।

/usr/include में gtags का उपयोग करना एक दिलचस्प विचार है, लेकिन शायद अधिक उपयोग नहीं किया जाएगा। अर्थपूर्ण केवल सभी शामिल फ़ाइलों को खोजने के बजाय आपके कोड में उपयोग की जाने वाली शीर्षलेख फ़ाइलों को ही खोजेगा। जीएनयू ग्लोबल बैकएंड विशेष रूप से एक प्रतीक, या प्रतीक संदर्भों के लिए एक संपूर्ण परियोजना स्कैन करने के लिए है। आप अपने सभी एक प्रतीक के लिए शामिल हैं खोज करने के लिए करना चाहता था, तो यह उपयोगी होगा, लेकिन वहाँ इस समय सिमेंटिक में ऐसी कोई सुविधा है।

ईब्रूज़ का उपयोग करना चाहते हैं जो आप चाहते हैं, लेकिन मुझे पता चला कि सी ++ के लिए, पार्सर सूक्ष्म तरीकों से अपर्याप्त था, और कुछ समस्याएं उत्पन्न हुईं।

यदि आपको लगता है कि अर्थात् पार्सर गलत है, तो आपको इसे सीडेट-डेवेल मेलिंग सूची पर एक बग के रूप में पोस्ट करना चाहिए।