2009-02-16 8 views
12

के लिए सिंटेक्स-हाइलाइटिंग टेक्स्टबॉक्स मैं एक वाक्यविन्यास-हाइलाइटिंग टेक्स्टबॉक्स घटक, स्रोत के साथ अधिमानतः मुक्त, और Winforms, ASP.NET और WPF समान रूप से उपयोग करने में सक्षम है। साथ ही, इसे न केवल प्रदर्शन, बल्कि सामग्री को संपादित करने का समर्थन करना चाहिए।Winforms, ASP.NET, WPF

मैं उत्कृष्ट, मुफ्त ActiPro SyntaxHighlighter for ASP.NET की खोज की है, लेकिन यह दुर्भाग्य ASP.NET के लिए ही है और यह केवल वाक्य रचना में पाठ हाइलाइट तरीके से, यह कोई संपादन क्षमताओं है को प्रदर्शित करता है .....

मैं भी के बारे में पता ICSharp Text Editor घटक जो SharpDevelop का हिस्सा है लेकिन यह तब एक स्टैंडअलोन है, लेकिन केवल Winforms, समाधान है।

क्या किसी को ऐसे घटक के बारे में पता है जिसमें सिंटैक्स-हाइलाइटिंग को संभालने के लिए कोर है (कॉन्फ़िगर करने योग्य, इसलिए मैं इसका उपयोग सी # कोड, एक्सएमएल और एचटीएमएल फाइलों और अन्य के लिए कर सकता हूं), और इसमें Winforms के लिए तीन "खाल" हैं , एएसपी.नेट और डब्ल्यूपीएफ? मैं वास्तव में एक कोर कि बड़े कार्य करने करता है, और शीर्ष बंटवारे कि कोर कोड पर तीन UI के कराना पसंद करते हैं ....

किसी भी संकेत दिए गए और संकेत का स्वागत है!

उत्तर

6

मैं आपके साथ हूं मार्क: मुझे एक एक्स्टेंसिबल सिंटैक्स हाइलाइटिंग फ्रेमवर्क देखना अच्छा लगेगा जो एक टोकनयुक्त "दस्तावेज़" ऑब्जेक्ट उत्पन्न कर सकता है जो तब हो सकता है प्रत्येक प्रदर्शन ढांचे के लिए नियंत्रण के माध्यम से प्रदर्शित किया जाना चाहिए। इस तरह पार्सर/टोकनेज़र एक बार लिखा जा सकता है!

सबसे अच्छा मैं कह सकता हूं कि this thread बताता है कि ActiProSoftware उनके वाक्यविन्यास हाइलाइटर के लिए एक WPF नियंत्रण पर काम कर रहा है।

2

ये सभी प्लेटफॉर्म पूरी तरह से अलग हैं और प्रत्येक के पास स्वयं का प्रतिपादन प्रदर्शन विधियां हैं। तो कोई सार्वभौमिक नियंत्रण नहीं होगा जो सब कुछ करता है। प्रत्येक प्लेटफार्म का अलग नियंत्रण होगा

हालांकि, कोई भी वेब नियंत्रण लागू कर सकता है और इसे किसी पृष्ठ में उपयोग कर सकता है। फिर Winforms या wpf में एक ब्राउज़र ऑब्जेक्ट इसे प्रदर्शित करने के लिए पृष्ठ पते का उपयोग कर सकता है

+4

ओह पर विचार, मैं पूरी तरह * प्रतिपादन को समझने * हिस्सा सभी के लिए समान नहीं हो सकता - लेकिन अन्य सभी सामान, नियमों, जैसे जो भागों क्या रंग के साथ उजागर करने के लिए, और पता लगाने के कीवर्ड इत्यादि, सभी साझा किया जा सकता है ..... –

3

शायद वेब के लिए CodeMirror आइटम पर विचार करें। जाहिर है यह डब्ल्यूपीएफ के लिए काम नहीं करेगा जैसा आपने पूछा था, लेकिन यह किसी भी वेब ढांचे के लिए काम करेगा - वेबफॉर्म, एएसपी.नेट एमवीसी, सादा एचटीएमएल, पीएचपी और अन्य।

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

Parsers के लिए:

  • जावास्क्रिप्ट
  • XML/HTML
  • सीएसएस
  • एचटीएमएल मिश्रित मोड
  • SPARQL
  • HTML + पीएचपी मिश्रित मोड
  • अजगर
  • लुआ
  • रूबी
  • एसक्यूएल
  • PLSQL
  • diff
  • ग्रूवी
  • सी #
  • योजना
  • जावा
  • XQuery
  • OmetaJS
  • Freemarker

कार्यान्वयन:

<textarea rows="30" cols="120" id="someCode" > 
    //some comments 
    var foo = "bar"; 
</textarea> 

आप 2 .js संदर्भ, और फिर जावास्क्रिप्ट के इस बिट अपने पाठ क्षेत्र तत्वों नई वाक्य रचना के साथ प्रकाश डाला तत्वों की जगह शामिल हैं।

<script type="text/javascript"> 
    var textarea = document.getElementById('someCode'); 
    var editor = new MirrorFrame(CodeMirror.replace(textarea), { 
     height: "350px", 
     content: textarea.value, 
     parserfile: ["tokenizejavascript.js", "parsejavascript.js"], 
     stylesheet: "css/jscolors.css", 
     path: "js/", 
     autoMatchParens: true 
    }); 
</script> 

The CodeMirror manual helps

इसके अलावा WikiPedia entry for Comparison of JavaScript-based source code editors