2010-02-10 5 views
5

किसी जीएनयू/एमैक्स मोड के लिए फ़ॉन्ट-लॉक-कीवर्ड सेट अप करते समय, क्या एक एकल मैचर के साथ नियमित अभिव्यक्ति के एकाधिक उप-अभिव्यक्ति को हाइलाइट करना संभव है? की तर्ज पर कुछ मुझे क्या करना चाहते हैं:फ़ॉन्ट-लॉक-कीवर्ड: एकाधिक उप-अभिव्यक्ति को हाइलाइट करना

("\\(foo\\)-\\(bar\\)" '(1 foo-face) '(2 bar-face)) 

क्या ऐसा ही कुछ के लिए सही सिंटैक्स होगा - या मैं इसे विभाजित करने के लिए दो अलग-अलग matchers में क्या है?

उत्तर

5

कुछ इस तरह का प्रयास करें:

("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face)) 

(अर्थात तुम्हारा के रूप में लेकिन अतिरिक्त उद्धरण चिह्नों के बिना ही)।

मैं यह कहता हूं क्योंकि मेरे पास मेरे कस्टम फ़ॉन्ट-लॉक-कीवर्ड परिभाषाओं में इस तरह के विभिन्न बिट्स हैं।

("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face nil t)) 

जो OVERRIDE और LAXMATCH वैकल्पिक झंडे के अनुरूप और अपने सटीक परिस्थितियों के आधार पर आवश्यक हो सकता है: उनमें से कुछ एक दूसरे के अंत पर nil t, इस तरह की है।

font-lock-keywords के लिए प्रलेखन कुछ गहराई में इस पर चर्चा करता है, हालांकि यह हमेशा पालन करने के लिए सबसे आसान नहीं है - उदाहरण के लिए, c-font-lock-keywords-3 के मौजूदा मान की तरह, मुझे किसी और के कामकाजी सेटअप की प्रतिलिपि बनाना आसान लगता है।