2011-12-20 17 views
15

के लिए स्क्रिप्टिंग इंटरफ़ेस प्रदान करने के लिए स्किंटिलानेट बनाम AvalonEdit मैं एक परियोजना पर काम कर रहा हूं जिसमें मेरे डब्ल्यूपीएफ (.Net4) विंडोज़ एप्लिकेशन के लिए एक स्क्रिप्टिंग इंटरफेस को लागू करना शामिल है। मैं उत्सुक हूं अगर कोई पसंदीदा संपादक, AvalonEdit बनाम ScintillaNET सुझा सकता है। एक के ऊपर एक के किसी भी नुकसान और फायदे। हमें सी # और आयरनपीथन दोनों को स्क्रिप्टिंग भाषाओं के रूप में समर्थन करने की आवश्यकता है। (कम से कम यह प्रारंभिक योजना है। हालांकि हम इसमें से किसी एक पर अंतिम रूप दे सकते हैं)।एक WPF अनुप्रयोग

स्किंटिलानेट के डाउनसाइड्स में से एक यह है कि यह देशी (अप्रबंधित) स्किंटिला के आसपास एक प्रबंधित आवरण है। WPF4 के साथ उपयोग किए जाने पर यह किसी भी समस्या का कारण बन जाएगा।

किसी भी पॉइंटर्स और सुझावों की सराहना की जाती है।

+2

भुवन, आप अंत में क्या तय करते थे? (अब, लगभग 2 साल बाद) – Goswin

+0

मैंने अपने स्रोत कोड में एक घटक के रूप में उपयोग किया है, लेकिन मैंने प्रत्येक पर आधारित दो उत्पादों का उपयोग किया है ('क्विंटिलानेट' पर आधारित 'क्विकशर्प' और 'एवलॉन एडिट' के आधार पर 'शार्प डेवलपमेंट') एक वैकल्पिक हल्के सी # संपादक। इमो, 'शार्प डेवेल' के साथ काम करने के लिए और अधिक विशेष और अधिक आसान था। – nawfal

उत्तर

22

मुझे लगता है कि यह इस बात पर निर्भर करता है कि आप संपादक में कितनी विशेषताओं को लागू करना चाहते हैं। इसके अलावा आप इसे विस्तारित करने के लिए कितना काम करना चाहते हैं और आप कितने सीखने की अवस्था से निपटने के इच्छुक हैं।

यदि आप Win32 को लक्षित कर रहे हैं और आपको अप्रबंधित डीएलएल पर कोई ध्यान नहीं है तो मुझे लगता है कि Scintilla.NET कोई समस्या नहीं होगी। इसके अलावा आप इसे आसानी से WPF में होस्ट कर सकते हैं क्योंकि this पृष्ठ सुझाता है।

व्यक्तिगत रूप से मुझे लगा कि स्किंटिला AvalonEdit से बेहतर प्रदर्शन करता है। मूल संपादक के साथ शुरुआत करना भी आसान है, और बॉक्स से बहुत कुछ प्रदान करता है, उदाहरण के लिए स्किंटिला बॉक्स से बाहर कोड फोल्डिंग प्रदान करता है।

AvalonEdit के साथ आपको एक तहखाने की रणनीति बनाना है और दस्तावेज़ को स्वयं पार्स करना है, यही मुझे एवलॉन एडिट के लिए आयरनपीथन का समर्थन करने के लिए करना है, जिसे मैंने अभी तक लागू नहीं किया है।

सभी मैं झलक में एक IronPython संपादक का समर्थन करने के लिए आवश्यक

खोज पथ में SciLexer.dll और Scintilla.net विधानसभा और निम्न कॉन्फ़िगरेशन था:

private void Form1_Load(object sender, EventArgs e) 
    { 
     this.scintilla1 = new ScintillaNet.Scintilla(); 
     this.scintilla1.ConfigurationManager.Language = "python"; 
     this.scintilla1.Indentation.ShowGuides = true; 
     this.scintilla1.Indentation.SmartIndentType = ScintillaNet.SmartIndent.Simple; 
     this.scintilla1.Location = new System.Drawing.Point(0, 0); 
     this.scintilla1.Margins.Margin0.Width = 40; 
     this.scintilla1.Margins.Margin2.Width = 20; 
     this.scintilla1.Name = "scintilla1"; 
     this.scintilla1.TabIndex = 4; 
     this.scintilla1.Whitespace.Mode = ScintillaNet.WhitespaceMode.VisibleAfterIndent; 
     this.scintilla1.Dock = DockStyle.Fill; 
     this.Controls.Add(this.scintilla1); 
    } 

AvalonEdit के लिए आप एक बाहरी हाइलाइटर लोड करने के लिए है फ़ाइल, आप अधिक जानकारी के लिए this ब्लॉग पोस्ट देख सकते हैं। तो यदि आप मूल बातें चाहते हैं (हाइलाइटिंग, पायथन + सी # के लिए तह करना) मेरा निष्कर्ष है कि विंटिला आसान है और बेहतर प्रदर्शन करता है। हालांकि AvalonEdit के साथ आप अंत में और अधिक करने में सक्षम हो सकते हैं यदि आप प्रयास में शामिल होने और सीखने की अवस्था से निपटने के इच्छुक हैं। फिलहाल मैं अपने स्थिर संपादक के रूप में स्किंटिला का उपयोग कर रहा हूं और अवधारणा के सबूत के रूप में एवलॉन के साथ प्रयोग कर रहा हूं। शायद मैं संपादक के बारे में और अधिक सीखने के रूप में भी नई राय तैयार करूंगा।

शुभकामनाएं

+0

धन्यवाद आंद्रे। यह बहुत उपयोगी है – Bhuvan

+6

@Andre, क्या आप अभी भी उसी जवाब देंगे (लगभग 2 साल बाद)? – Goswin

+0

हाँ, मैं @ गोस्विन के प्रश्न का भी जवाब देना चाहता हूं। – gideon

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