स्रोत फ़ाइलों पर भाषा को हाइलाइट करने वाला बल GitHub सिंटैक्स


16

मेरे पास एक GitHub रिपॉजिटरी में कुछ C ++ सोर्स फाइल्स हैं जिनमें .C का एक्सटेंशन है और C सिंटैक्स हाइलाइटिंग का उपयोग कर रहे हैं, जो मुझे नहीं चाहिए।

मैं GitHub को इन फ़ाइलों पर हाइलाइटिंग C ++ सिंटैक्स लागू करने के लिए कैसे सेट कर सकता हूं?

क्या सिथैक्स हाइलाइटिंग उद्देश्यों के लिए गीथहब स्रोत भाषा की पहचान करने का तरीका है?

ऐसा लगता है कि यह केवल फ़ाइल एक्सटेंशन का उपयोग करता है, लेकिन क्या किसी विशेष भाषा को मजबूर करने का एक तरीका है?

जवाबों:


9

मैंने support@github.com से पूछा; यह उनका जवाब है:

हम सिंटैक्स को हाइलाइट करने और यह निर्धारित करने के लिए कि क्या प्रत्येक फ़ाइल के एक्सटेंशन के आधार पर उपयोग करने के लिए लेक्सर का उपयोग करें। दुर्भाग्य से, ऐसा नहीं लगता है कि * .c -> * .cpp और * .h -> * .hpp से फ़ाइलों का नाम बदले बिना C ++ हाइलाइट करने का एक तरीका है।

आप git mvकमांड का उपयोग करके किसी फ़ाइल के इतिहास को खोए बिना ऐसा कर सकते हैं ।


7

गिटहब की भाषा का पता लिंग्विस्टिक मॉड्यूल द्वारा किया जाता है , जो आसानी से खुला स्रोत है। यह मुख्य रूप से भाषा का पता लगाने के लिए फ़ाइल एक्सटेंशन पर निर्भर करता है, हालांकि अस्पष्ट फ़ाइलों (जैसे .hफाइलें) का पता लगाने के लिए यह थोड़ा चालाक हो सकता है । जैसा कि आप कॉन्फ़िगरेशन फ़ाइल से देख सकते हैं , .cदृढ़ता से सी फ़ाइल के रूप में परिभाषित किया गया है। GitHub पर जिन फाइलों का आकलन करना है, उनकी संख्या को देखते हुए, दक्षता एक महत्वपूर्ण आवश्यकता है, अगर कुछ सटीकता की कीमत पर।

ऐसा लगता है कि डेवलपर द्वारा रेपो कॉन्फ़िगरेशन को खारिज कर दिया गया है, इसलिए आप सी ++ के रूप में फ़ाइलों को सिंटैक्स हाइलाइट कर सकते हैं, क्योंकि C ++ एक्सटेंशन का उपयोग करना होगा। उन एक्सटेंशनों को रखने और हाइलाइट करने के लिए आपको किसी अन्य सेवा की कोशिश करनी पड़ सकती है, या कोड को स्वयं कहीं होस्ट कर सकते हैं।

अद्यतन अक्टूबर 2014 : GitHub अभी भी खड़ा नहीं है, पिछले वर्ष में उन्होंने फ़ाइल में भाषा का निर्धारण करने में मदद करने के लिए कुछ बुनियादी अनुमान लगाए हैं। इस प्रश्न के लिए अधिक विशिष्ट, .cफाइलों को अब यह देखने के लिए जांचा जाता है कि क्या वे C, C ++ या Objective-C हैं।

GitHub सपोर्ट का जवाब थोड़ा दिलचस्प है, वे हाइलाइटिंग और लेक्सर के लिए पियुमेंट्स का उपयोग करते हैं, लेकिन नियम अपने स्वयं के लिंग्विस्ट मॉड्यूल में हैं। जो आपको उम्मीद है कि उन्हें पता होगा!


3

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

वर्कअराउंड के रूप में आप सही भाषा के पक्ष में "तराजू को टिप" करने के लिए एक टिप्पणी के रूप में डमी टोकन जोड़ सकते हैं। यह प्रायोगिक है लेकिन मुझे इसका सौभाग्य मिला है


1

यहाँ अपना उत्तर साझा करते हुए मैंने SO पर कहीं और खोज की ।

मुझे पता चला कि आप अपने स्रोत फ़ाइल के शीर्ष पर लिंगुइस्ट रीडमे के अनुसार एक विम या एमएसीएस मॉडल जोड़ सकते हैं (दुर्भाग्य से, प्रत्येक फ़ाइल के लिए आवश्यक) गिथब डॉट कॉम के लिए सिंटैक्स हाइलाइटिंग। के आधार पर languages.yml फ़ाइल, मुझे लगता है कि आप जोड़ने के लिए आवश्यकता होगी /* vim: syntax=C++ */अपने स्रोत फाइल करने के लिए।


0

अब आप अपने रिपॉजिटरी में किसी भी फाइल की भाषा को भाषाविद ओवरराइड्स का उपयोग करके बाध्य कर सकते हैं । भाषाविद् , ओपन सोर्स लाइब्रेरी है, जो github.com पर फाइलों की भाषा का पता लगाती है।

अपनी .cफ़ाइलों को C ++ व्याकरण का उपयोग करके हाइलाइट करने के लिए बाध्य करने के लिए, आप अपनी .gitattributesफ़ाइल में निम्न जोड़ सकते हैं :

*.c linguist-language=C++

मैंने *.S linguist-language=asmबिना किसी
फ़ायदे के

@mckenzm ऐसा लगता है कि आपका संदेश छंट गया। .gitattributesआपके द्वारा पोस्ट की गई पंक्ति को सभी .Sफ़ाइलों को असेंबली के रूप में पहचानने के लिए भाषाविद् को बाध्य करना चाहिए । यदि यह काम नहीं करता है, तो मैं रिपॉजिटरी पर एक नज़र डाल सकता हूं कि यह देखने की कोशिश करें कि क्या हो रहा है (क्या आपके पास लिंक है)?
पचीग्नो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.