2008-09-19 6 views
7

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

इसी प्रकार, यदि कोई ऑब्जेक्ट चुना गया है तो से अधिक के साथ तुलनीय नहीं है, तो वह संबंध संभावित संबंधों की सूची में नहीं होना चाहिए। मुझे लगता है कि इस समस्या का दिल एक प्रकार का चेकर है, लेकिन मैं अपने आवेदन में उस प्रकार के तर्क को शामिल करने का सबसे अच्छा तरीका नहीं हूं। क्या कोई डीएसएल के लिए मौजूदा प्रकार की जांच पुस्तकालयों से अवगत है?

मुझे विशेष रूप से ओपन-सोर्स और क्रॉस-प्लेटफ़ॉर्म तकनीकों में रूचि है। जावा शायद वह भाषा है जिसका हम उपयोग कर सकते हैं, लेकिन यह तय नहीं है।

+0

मुझे आश्चर्य है कि इसके साथ क्या हुआ? क्या आपको एक अच्छा समाधान मिला? मेरे दिमाग में, इंटेलिजेंस एक प्रयोज्य दृष्टिकोण से लागू करने के लिए राक्षसी रूप से मुश्किल होगा। प्रतिक्रिया और घुसपैठ के बीच सही संतुलन ढूँढना एक अविश्वसनीय रूप से विचित्र कार्य की तरह लगता है। मेरे अनुभव से, माइक्रोसॉफ्ट का कार्यान्वयन किसी और चीज से आगे है। ग्रहण कार्यान्वयन इतना गड़बड़ महसूस करता है। मुझे यह जानने में बहुत दिलचस्पी होगी कि आपको कुछ अच्छा मिला है या नहीं। – Alex

+0

यह एक कार्य प्रोजेक्ट था, और मुझे किसी अन्य प्रोजेक्ट पर काम करने के लिए खींच लिया गया था, इसलिए इस पर मेरे प्रयासों की मृत्यु हो गई। इसके अलावा, मुझे लगता है कि आप (एलेक्स) और मैं 'इंटेलिजेंस' के विभिन्न पहलुओं में रुचि रखते हैं। वास्तविक उपयोगकर्ता इंटरफ़ेस पर काम करने के बजाय, मैं सामान्य उद्देश्य वाले ऑटो-पूर्ण सिस्टम के पीछे डिज़ाइन से अधिक चिंतित था। (यूआई बाद में आएगा।) – rcreswick

उत्तर

2

आप Scintilla पर देख सकते हैं। यह अन्य उपकरणों के बीच नोटपैड ++ द्वारा उपयोग किया जाने वाला संपादन घटक है। यह स्वत: पूर्ण करने के लिए कुछ समर्थन है, हालांकि मैंने इसे स्वयं का उपयोग करने की कोशिश नहीं की है, इसलिए मुझे यकीन नहीं है कि यह कितना अच्छा काम करता है। यह खुला स्रोत है, इसलिए यदि यह आपकी आवश्यकताओं को पूरा नहीं करता है, तो मुझे लगता है कि आप बिना किसी परेशानी के इसे बढ़ा सकते हैं।

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