हाल ही में, मैंने अपने एसटी 2 सीएसएस सिंटैक्स हाइलाइटिंग को जुनून से धोखा दिया। इन * .tmLanguage फ़ाइलों की मेरी समझ परीक्षण और त्रुटि पर आधारित है - ज्यादातर त्रुटि। मैं इस बात का उल्लेख करने के लिए उल्लेख करता हूं कि मेरी समझ स्पॉटी है।
मुझे लगता है कि फ़ाइल को संशोधित करना चाहते ~/Library/Application Support/Sublime Text 2/Packages/Default/Find Results.hidden-tmLanguage
लंबी कहानी कम है, मुझे लगता है कि आप इस सार की तरह इसे सेट अप करना चाहते हैं (जो टिप्पणी उदार है):
https://gist.github.com/4333623#file-find-results-hidden-tmlanguage
एक फ़ाइलों परिणामों में ठेठ ढूँढें कुछ इस तरह दिखेगा:
Searching 11 files for "feedback-assistance-form" (regex)
/_projects/___/group_reg.js:
60 });
61
62: $asstForm = $help.find('#feedback-assistance-form');
63
64 if (!$asstForm.length) {
65: console.log('WARN: Feedback assistance: #feedback-assistance-form not found');
66 return;
67 }
/_projects/___/group_register_help_tmpl.html:
6 <div id="group-reg-help">
7
8: <form id="feedback-assistance-form" class="js-popover help-content hide" action="{% url info.views.assistance_request %}" method="post">
9
10 <legend>Need Assistance?</legend>
3 matches across 2 files
Find Results.hidden-tmLanguage
वें पार्स 3 प्रासंगिक भागों में ई परिणाम:
- फ़ाइल नाम के साथ लाइन
- एक मैच बिना एक अंश लाइन
- एक मैच
इस के लिए नियम <patterns>
में हैं के साथ एक कुछ अंश लाइन खंड:
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>^([^ ].*):$</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.filename.find-in-files</string>
</dict>
</dict>
</dict>
<dict>
<key>match</key>
<string>^ +([0-9]+) </string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.numeric.line-number.find-in-files</string>
</dict>
</dict>
</dict>
<dict>
<key>match</key>
<string>^ +([0-9]+):</string>
<key>captures</key>
<dict>
<key>1</key> <!-- capture group 1 -->
<dict>
<key>name</key> <!-- name it so it can be colored -->
<string>constant.numeric.line-number.match.find-in-files</string>
</dict>
</dict>
</dict>
</array>
ये सिर्फ फ़ाइल के माध्यम से जाते हैं, लाइन-दर-रेखा, और देखो f या एक मैच। यदि कोई मिलान मिलता है, तो एक या अधिक <key>name</key>
मिलान के कैप्चरिंग समूह (ओं) पर परिभाषा लागू होती है, यदि कोई हो। ये name
परिभाषाओं को विषय परिभाषा फ़ाइल (उदाहरण के लिए, मोनोकै) में संदर्भित किया गया है और रंग नामित कैप्चरिंग समूह द्वारा मिलान किए गए वर्णों पर लागू होता है।
उपरोक्त पैटर्न केवल कैप्चरिंग समूहों के साथ मेल खाते हैं। मुझे लगता है कि इसका एक सीमा मैच (या यह कैप्चरिंग समूह) है और आगे संसाधित नहीं किया जा सकता है। ,
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<!-- add the filetype extensions, here -->
<!-- these are XML formatted files: -->
<string>^([^ ].*\.(?:xml|tmLanguage|hidden-tmLanguage|tmTheme):)$</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.filename.find-in-files</string>
</dict>
</dict>
<key>end</key>
<string>^[^ ]</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#line-numbers</string>
</dict>
<dict>
<key>include</key>
<!-- which syntax should match up to the filetype extensions listed above: -->
<!-- to find out what the "scopeName" is, refer to the corresponding *.tmLanguage file -->
<!-- for XML, this is ~/Library/Application Support/Sublime Text 2/Packages/XML/XSL.tmLanguage -->
<string>text.xml</string>
</dict>
</array>
</dict>
<!-- ... can have many more -->
</array>
पैटर्न के इस प्रकार के साथ मुख्य बात यह एक <begin>
और एक <end>
है तो यह यह खुद <pattern>
अनुभाग है है:
क्या सार में लागू की गई प्रारूप के पैटर्न हैं।जब <begin>
regex मिलान किया जाता है, <patterns>
की सामग्री तब तक लागू होती है जब तक (यह वह जगह है जहां मुझे वास्तव में स्पॉटी मिलती है) एक बेजोड़ टोकन का सामना करना पड़ता है, जिस बिंदु पर <end>
का परीक्षण किया जाता है। मुझे लगता है।
किसी भी घटना में, गिस्ट इन प्रारंभिक अंत-पैटर्न ब्लॉक में से कई को परिभाषित करता है, प्रत्येक एक्सएमएल, एचटीएमएल, जावास्क्रिप्ट और सीएसएस फ़ाइल प्रकारों और वाक्यविन्यासों में से एक। <being>
regex फ़ाइल नाम और एक विशेष फ़ाइल एक्सटेंशन के साथ लाइन से मेल खाता है। इसका उपयोग किसी दिए गए वाक्यविन्यास के लिए "संदर्भ" की शुरुआत बनाने के लिए किया जाता है। संदर्भ तब समाप्त होता है जब बाद के <patterns>
ब्लॉक स्टॉप मिलान और <end>
रेगेक्स मैचों में तत्व होते हैं। मुझे लगता है कि आप मूल रूप से बस वाक्यविन्यास इनमें से जो भी आप खोज परिणामों में हाइलाइट करना चाहते हैं के लिए इस शरीर से बाहर करना चाहते हैं ...
यहाँ की वाक्य रचना-प्रकाश डाला खोजने के परिणाम मुझे लगता है कि सार का उपयोग कर रहा हूँ एक स्क्रीनशॉट है:

मुझे ध्यान रखना चाहिए कि एक बड़ा मुद्दा सामने आया है जब एक ब्लॉक-टिप्पणी एक अंश में शुरू होती है लेकिन अंश में ब्लॉक-टिप्पणी समाप्त करने वाले वर्ण शामिल नहीं होते हैं। ब्लॉक-टिप्पणी तब तक जारी रहती है जब तक कि खोज परिणामों में समाप्ति टोकन कहीं और नहीं आती है। यह बाद की खोजों में भी विस्तारित है।
अद्यतन:
मैं जोड़ने के लिए है कि आप स्टार्टअप पर कुछ भी पुन: संयोजित करने की जरूरत नहीं चाहिए था। हालांकि, यह उल्लेख करने लायक है कि आपको प्रभाव लेने के लिए Find Results.hidden-tmLanguage
में परिवर्तनों के लिए उत्कृष्टता को पुनरारंभ करना होगा। यदि आप इसे किसी प्रकार की प्लगइन बनाते हैं, ऐसा लगता है कि परिवर्तन मुख्य रूप से नई भाषाओं को जोड़ने में शामिल होंगे, जो कि केवल एक कम प्लगइन-अपडेट हो सकता है।
यह वाक्यविन्यास परिभाषा नहीं है, लेकिन यह मदद कर सकता है: [http://css-tricks.com/exclude-compiled-css-from-sublime-text-2-projects/](http://css -tricks.com/exclude-compiled-css-from-sublime-text-2-projects/) – runningRhetoric
काफी कुछ नहीं जो मैं ढूंढ रहा था ... मैं "परिणाम ढूंढें" से खुश हूं .. ओह, 'परिणाम। ' मैं – Crisfole
को हाइलाइट करने वाले बेहतर सिंटैक्स की उम्मीद कर रहा था, मैं कुछ इसी तरह की खोज कर रहा हूं, और इस http://blog.macromates.com/2012/injection-grammars-project-variables/ पर आया। हालांकि, प्रवेश मेरे लिए बहुत स्पष्ट नहीं है। मैं अभी भी पच रहा हूँ। यहां तक कि इस पर भी आया (https://groups.google.com/forum/?fromgroups=#!msg/textmate/cEXeWHjEXNk/EWqV5L2CWQAJ), लेकिन फिर भी, अभी भी बहुत अस्पष्ट है। – sntran