2010-06-29 21 views
5

मैं टेक्स्टमैट में कुछ सीएसएस हाइलाइटिंग का विस्तार करने की कोशिश कर रहा हूं। मेरा दृष्टिकोण ऐसा है ...टेक्स्टमैट सिंटैक्स हाइलाइटिंग, किसी अन्य भाषा से हाइलाइटिंग का विस्तार

{ 
    .... 
    patterns = (
     { include = 'source.css'; }, 
     { 
      name = 'support.function'; 
      match = '\..*\);'; 
     }, 
    ); 
} 

समस्या "include = 'source.css' है;"। अगर मैं उस रेखा को हटा देता हूं। मेरा कस्टम मैचर हिट करता है और अपेक्षित हाइलाइटिंग लागू करता है। लेकिन फिर मैं चाहता हूं कि सभी पूर्वनिर्धारित सीएसएस को हाइलाइट करना।

मैं इस बात से परेशान हूं कि मैं मौजूदा सीएसएस को हाइलाइट कर सकता हूं जिसमें मैं शामिल हूं। विचार?

उत्तर

4

मुझे एक समान समस्या थी। मैंने इसके खिलाफ अपने सिर को टक्कर लगी, फिर टेक्स्टमैट आईआरसी चैनल में से किसी ने मुझे सीधे सेट किया: किसी कारण से (जिसे मैं भूल जाता हूं) आपको अपनी भाषा व्याकरण को फिर से शामिल करने की आवश्यकता है।

मेरे पैटर्न अनुभाग अब, लग रहा है

तरह
patterns = (
{ include = 'source.ruby'; }, 
{ include = '$self'; }, 
); 

इस उदाहरण में अधिक जानकारी जोड़ने के लिए, यहाँ बंडल मैं निर्माण कर रहा है के लिए मेरी भाषा व्याकरण है (फ़ाइल मैं में दिलचस्पी थी के हिस्से में सब कुछ गुंजाइश meta.rails.model में था। हो सकता है कि आप अपने सीएसएस बंडल में है कि नहीं है।

patterns = (
    { name = 'meta.rails.model'; 
     comment = "Uses lookahead to match classes that (may) inherit from ActiveRecord::Base; includes 'source.ruby' to avoid infinite recursion"; 
     begin = '(^\s*)(?=class\s+.+ActiveRecord::Base)'; 
     end = '^\1(?=end)\b'; 
     patterns = (
      { include = 'source.ruby'; }, 
      { include = '$self'; }, 
     ); 
    }, 
    { name = 'source.ruby.rails.aasm.event'; 
     match = '(aasm_event\W*:\w+)'; 
     captures = { 1 = { name = 'keyword.other.context.ruby.rails.aasm.event'; }; }; 
    }, 
    { include = 'source.ruby.rails'; }, 
); 

}

लेकिन आप देखते हैं कि $ स्वयं घोषणापत्र अन्य पैटर्न में meta.rails.model पैटर्न में खींचता है (जो मुझे लगता है, यह क्यों महत्वपूर्ण था)।

+1

बिल्कुल सही, बिल्कुल जो मैं खोज रहा था। –

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