2008-09-18 31 views
7

मैं Scintilla का उपयोग कर एक संपादक लिख रहा हूं।मैं स्किंटिला में टेक्स्ट कैसे हाइलाइट कर सकता हूं?

मैं पहले से ही स्वचालित वाक्यविन्यास हाइलाइटिंग करने के लिए एक लेक्सर का उपयोग कर रहा हूं लेकिन अब मैं खोज परिणामों को चिह्नित करना चाहता हूं। अगर मैं केवल एक हिट चिह्नित करना चाहता हूं तो मैं वहां चयन सेट कर सकता हूं, हालांकि, मैं सभी हिट को चिह्नित करना चाहता हूं (उदा। पीले रंग की पृष्ठभूमि के साथ)।

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

उत्तर

2

"नमूना" संपादक स्किट खोज परिणामों से मेल खाने वाली सभी पंक्तियों को बुकमार्क करने के लिए बुकमार्क सुविधा का उपयोग करता है।

9

क्या आपने Markers reference in Scintilla doc पढ़ा है? यह संदर्भ थोड़ा अस्पष्ट हो सकता है, इसलिए मैं वैज्ञानिक के स्रोत कोड को भी देखने की सलाह देता हूं। यह टेक्स्ट एडिटर मूल रूप से स्किंटिला के लिए टेस्टबेड था। यह एक पूर्ण संपादक के लिए उगाया गया, लेकिन यह अभी भी सिंटिला की सभी चीजों के लिए एक अच्छा कार्यान्वयन संदर्भ है।

हमारे विशेष मामले में, खोज संवाद में एक मार्क सभी बटन है। आप SciTEBase :: MarkAll() विधि में इसका कार्यान्वयन पा सकते हैं। यह विधि केवल खोज परिणामों पर लूप होती है (जब तक कि यह पहले खोज परिणाम पर लूप न हो जाए), और पाया गया लाइनों पर एक बुकमार्क डालता है (और वैकल्पिक रूप से पाए गए आइटमों पर एक संकेतक सेट करता है)। मिली लाइन SCI_LINEFROMPOSITION (posFound) का उपयोग करके प्राप्त की गई है, बुकमार्क केवल SCI_MARKERADD (lineno, markerBookmark) के लिए एक कॉल है। ध्यान दें कि चिह्न मार्जिन में प्रतीक हो सकता है, या यदि मार्जिन से कनेक्ट नहीं है, तो यह पूरी लाइन को हाइलाइट करेगा।

एचटीएच।

1

मैंने खोज परिणामों को हाइलाइट करने के लिए Indicators का उपयोग किया।

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