डायनामिक सिंटैक्स हाइलाइटिंग


डायनैमिक सिंटैक्स हाइलाइटिंग में उस कोड को हाइलाइट किया जाता है जिसे उपयोगकर्ता खुद बदल सकता है। ऐसा सिर्फ एक जगह होता है, और वह है ऑनलाइन एडिटर।

Note

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

कार्यान्वयन

डायनैमिक सिंटैक्स हाइलाइटिंग CodeMirror लाइब्रेरी की मदद से की जाती है।

अपनी भाषा के लिए सपोर्ट जोड़ते समय आपके पास तीन विकल्प होते हैं:

  1. भाषा को CodeMirror पहले से ही सपोर्ट करता है (यानी वह समर्थित भाषाओं की सूची में शामिल है)। अगर ऐसा है, तो भाषा चालू करने वाले अनुभाग पर आगे बढ़िए।
  2. भाषा को कोई मौजूदा CodeMirror प्लगिन सपोर्ट करता है। अगर ऐसा है, तो मौजूदा प्लगिन का इस्तेमाल करने वाले अनुभाग पर आगे बढ़िए।
  3. भाषा को सपोर्ट नहीं है। अब आपके पास तीन विकल्प हैं:
    1. शुरू से एक CodeMirror प्लगिन लिखिए, जैसा कि नया प्लगिन बनाने वाले अनुभाग में बताया गया है।
    2. आपकी भाषा का सिंटैक्स किसी दूसरी भाषा के सिंटैक्स से (काफी हद तक) मिलता-जुलता है (जैसे Unison का सिंटैक्स Haskell से मिलता है), ऐसे में आप सोच सकते हैं कि उस भाषा की सिंटैक्स हाइलाइटिंग अपनी भाषा के लिए इस्तेमाल करें। अधिक जानकारी के लिए भाषा चालू करने वाला अनुभाग देखिए।
    3. डायनैमिक सिंटैक्स हाइलाइटिंग न रखिए।

भाषा चालू करना

अपनी भाषा के लिए CodeMirror सपोर्ट चालू करने के लिए फोरम पर एक टॉपिक शुरू कीजिए। इसके बाद हम (Exercism) एक पुल रिक्वेस्ट बनाएँगे, जो वेबसाइट पर आपकी भाषा के लिए CodeMirror सपोर्ट चालू करेगा।

मौजूदा प्लगिन का इस्तेमाल करना

किसी मौजूदा प्लगिन को इस्तेमाल करने के लिए ज़रूरी है कि वह NPM पर पब्लिश हो।

अगर प्लगिन NPM पर पब्लिश नहीं है, तो आपके पास ये विकल्प हैं:

  1. प्लगिन के लेखक से पूछिए कि क्या वे इसे NPM पर पब्लिश करना चाहते हैं।
  2. रिपॉज़िटरी फोर्क कीजिए और उसे खुद पब्लिश कीजिए।
  3. रिपॉज़िटरी फोर्क करने का काम हमें (Exercism को) दीजिए और फिर हम उसे पब्लिश करेंगे। इसके लिए फोरम पर टॉपिक खोलकर अनुरोध कीजिए।

अगला कदम है भाषा चालू करना।

नया प्लगिन बनाना

शुरू करने के लिए ये कदम उठाइए:

  1. यह पक्का करने के लिए कि ऐसा कोई प्लगिन पहले से मौजूद न हो, codemirror-lang-... के लिए हमारी मौजूदा रिपॉज़िटरी की सूची देखिए।
  2. Exercism फोरम पर एक नया टॉपिक शुरू कीजिए और बताइए कि आप किस भाषा के लिए CodeMirror प्लगिन बनाना चाहते हैं।
  3. जब आपके लिए CodeMirror प्लगिन की रिपॉज़िटरी बन जाए, तो अपने ट्रैक का ग्रामर लिखिए।
Note

शुरुआत करने में मदद के लिए, आपके लिए बनाई गई रिपॉज़िटरी में एक छोटा नमूना ग्रामर मौजूद होता है, जिसे आप आगे बढ़ा सकते हैं या उसमें बदलाव कर सकते हैं।

हमारे पास बेहद दोस्ताना और मददगार कम्युनिटी है, जो यह सब करते समय आपकी मदद करने में खुशी महसूस करेगी! अगर आप कहीं अटक जाएँ, तो Exercism फोरम पर नया टॉपिक शुरू कीजिए या ज़रूरत पड़ने पर exercism/exercism पर नए इश्यू बनाइए 🙂

इसके बाद आपको प्लगिन को NPM पर पब्लिश करना होगा। अगला कदम है भाषा चालू करना।

दूसरी भाषा का इस्तेमाल करना

आपकी भाषा का सिंटैक्स किसी दूसरी भाषा के सिंटैक्स से (काफी हद तक) मिलता-जुलता है, ऐसे में आप सोच सकते हैं कि उस भाषा की सिंटैक्स हाइलाइटिंग अपनी भाषा के लिए इस्तेमाल करें। इसके लिए ट्रैक को उस दूसरी भाषा के CodeMirror प्लगिन से कॉन्फिगर कीजिए। अधिक जानकारी के लिए भाषा चालू करने वाला अनुभाग देखिए।