2009-06-09 12 views
10

संभव डुप्लिकेट:
Syntax coloring for Cocoa appकोको टेक्स्ट व्यू में सिंटेक्स हाइलाइटिंग? अनुभव? सुझाव? विचार?

मैं वाक्य रचना एक कोको TextView में पर प्रकाश डाला में दिलचस्पी रखता हूँ।

मैं कई संसाधनों पाया:

  • approach with flex, एक flex पैटर्न एक TextView प्रतिनिधि में textStorageDidProcessEditing प्रति मिलान के माध्यम से। इस दृष्टिकोण में पूरी स्ट्रिंग प्रत्येक इनपुट ईवेंट पर पार्स हो जाती है, इसलिए प्रदर्शन घटता है।

    1. उपयोग NSTextStorageDidProcessEditingNotification, तो संपादित रेंज मिलता है, और सिर्फ वहाँ रंग लागू होते हैं:

    2. CocoaDev एक own page on the topic of syntax highlighting है। सीमा शब्दबाउंड या कुछ भी हो सकती है; यह निश्चित रूप से प्रदर्शन में सुधार करता है।

    3. उल्लेख किया गया: उदाहरण के लिए, उदाहरण के लिए, केवल वर्तमान में स्क्रीन पर पाठ को रंगीन करता है, और जब तक आप इसे स्क्रॉल नहीं करते हैं तब तक बाकी दस्तावेज़ को रंगना बंद कर देता है। कोई इसे कैसे कार्यान्वित करेगा?

    4. उपयोग NSLayoutManager - अस्थायी विशेषताओं [जो] केवल परदे पर ड्राइंग के लिए इस्तेमाल किया और किसी भी तरह से एक समान नहीं हैं कर रहे हैं ... के माध्यम से के रूप में डॉक्स कहते हैं, लेकिन यह है कि पिछले संपादित रेंज रंग नहीं है , जब तक एक सफेद जगह चरित्र दर्ज नहीं किया जाता है।

    5. कस्टम हेल्पर UKSyntaxColoredDocument - अच्छा, लेकिन भाषा परिभाषा संपत्ति सूची के माध्यम से की जाती है; अतिरिक्त/मौजूदा भाषा परिभाषाओं का उपयोग कैसे करें?

दृष्टिकोण से कोई भी वास्तव में विस्तृत या मजबूत मुझे लगता है (4. शायद छोड़कर ..)।

मैं एसएच के लिए pygments जैसे मजबूत मौजूदा पुस्तकालयों से अवगत हूं; और PyObjC का।

प्रश्न: कुछ मौजूदा लाइब्रेरी का उपयोग करना कैसे संभव होगा उदा। pygments को कोको TextView में एक एक्स्टेंसिबल और प्रदर्शन वाक्यविन्यास हाइलाइट करने के लिए?

नोट: मुझे पता है कि यह प्रश्न बहुत व्यापक है (और बहुत लंबा है)। अनुभव और सुझाव के साथ ही समाधान का स्वागत है। धन्यवाद।Syntax coloring for Cocoa app

उत्तर

7

मैं Smultron के स्रोत कोड पर एक नज़र लेने के सुझाव है:


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

+0

Smultron अब खुला स्रोत नहीं है, इसलिए स्रोत कोड अब उपलब्ध नहीं है। – zpasternack

+1

स्रोत अभी भी soureforge वेबसाइट पर उपलब्ध है। यहां देखें: http://sourceforge.net/projects/smultron/files/smultron/3.6b1/ – Daniel

+0

मैं सही खड़ा हूं, धन्यवाद! – zpasternack

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