2012-01-22 7 views
8

क्या कोई ऐसा उपकरण है जो मुझे किसी दिए गए भाषा के लिए सिंटैक्स हाइलाइटिंग निर्दिष्ट करने की अनुमति देगा, फिर कुछ सामान्य संपादकों के लिए सिंटैक्स हाइलाइटिंग फाइलें उत्पन्न करें?सिंटेक्स हाइलाइटिंग टूल/भाषा जो कई संपादकों के साथ काम करती है

मैं पूछता हूं क्योंकि मैं एक डोमेन-विशिष्ट भाषा विकसित कर रहा हूं, और मैं कहा भाषा के लिए सिंटैक्स हाइलाइटिंग समर्थन प्रदान करना चाहता हूं। हालांकि, मैं प्रत्येक संपादक (विम, नोटपैड ++, विजुअल स्टूडियो इत्यादि) के लिए अलग सिंटैक्स हाइलाइटिंग फाइल लिखना नहीं चाहता हूं।

इस प्रकार का अनुवाद संभव है, क्योंकि सिंटैक्स हाइलाइटिंग के लिए मुख्य अवधारणाएं आम तौर पर आप जिस संपादक का उपयोग कर रहे हैं उससे स्वतंत्र हैं। मुझे नहीं पता कि ऐसी चीज पहले से मौजूद है या नहीं।

उत्तर

1

मुझे ऐसा कुछ भी पता नहीं है, लेकिन मेरी राय में यह उत्पादन करना काफी आसान होगा। उदाहरण के लिए, कोई एक्सएमएल-आधारित सार्वभौमिक प्रारूप (डीटीडी/एक्सएसएल योजना के रूप में) बना सकता है और संपादक-विशिष्ट एक्सएसएलटी परिवर्तनों का उपयोग कर सकता है। फिर, प्रत्येक संपादक निर्माता (या कोई और) अपने संपादक के लिए एक एक्सएसएलटी फ़ाइल बना देगा। और प्रत्येक नई भाषा के लिए, एक एक्सएमएल बनाया जाएगा।

  • संपूर्णता:

    सबसे बड़ी समस्या इस तरह के एक भाषा है कि कम से कम इन मानदंडों को पूरा होगा निर्दिष्ट करने के लिए है यह वाक्य रचना हाइलाइटिंग विन्यास के सभी संभव सुविधाओं को शामिल करना चाहिए।

  • उपयोग की आसानी: यह सरल भाषाओं के लिए अत्यधिक जटिल नहीं होना चाहिए।
  • खुलेपन और मानकीकरण: यह उपयोगी होने के लिए लोकप्रिय होना चाहिए। लोकप्रिय होने के लिए, यह खुला और मानकीकृत होना चाहिए।
+0

मेरे पास सिंटैक्स हाइलाइटिंग के लिए सार्वभौमिक प्रारूप/भाषा बनाने के बारे में समान विचार थे (I एक्सएमएल भी सोच रहा था)। यदि आप 2-तरफा अनुवाद कर सकते हैं तो यह वास्तव में अच्छा होगा ताकि अगर कोई पहले से ही मौजूदा वाक्यविन्यास प्रारूप को जानता हो, तो वे इसे 'सार्वभौमिक' प्रारूप में अनुवाद कर सकते हैं, फिर अन्य सभी प्रारूपों में। एक अच्छा विचार की तरह लगता है - शायद मुझे समय मिल जाएगा जब मैं समय प्राप्त करता हूं: ओ) – simplyletgo

2

संपादकों उपयोग झलक (http://www.scintilla.org/) स्रोत कोड संपादन और वाक्य रचना हाइलाइटिंग के लिए की काफी एक बहुत कुछ है: उदाहरण के Notepad ++ खिड़कियों पर, GNOME में एडिट के लिए, कोड :: ब्लॉक। इसलिए आप स्किंटिला को वाक्यविन्यास परिभाषा जोड़ने पर विचार कर सकते हैं। जहां तक ​​मैं समझता हूं कि यह आपकी भाषा के लिए एक लेक्सर की एक्सएमएल परिभाषा लिखने का विषय है (उदाहरण के लिए this page कोड :: ब्लॉक के लिए देखें)

संबंधित मुद्दे