2015-06-16 7 views
5

मैं एक ST3 पैकेज लिखा है (.py प्लगइन्स, .sublime-keymap रों और उस में .sublime-commands के साथ) और मैं प्लग इन और .sublime* विन्यास फाइल सक्रिय केवल एक विशिष्ट फ़ाइल वाक्य रचना (जैसे .txt या .myCustomSyntax के लिए) के लिए होना चाहता हूँ। मैं उसे कैसे प्राप्त कर सकता हूं?केवल कुछ फ़ाइल वाक्यविन्यास के लिए एक शानदार पाठ 3 पैकेज की अनुमति कैसे दें?

उत्तर

0

प्रदान किए गए उदाहरणों के आधार पर, आपको वाक्यविन्यास के बजाय फ़ाइल एक्सटेंशन का उपयोग करना चाहिए। सक्रिय वाक्यविन्यास वाक्यविन्यास मेनू के माध्यम से बदला जा सकता है, जबकि फ़ाइल एक्सटेंशन स्थिर हैं।

#■■■■■ Establish Valid File Extensions ■■■■■■■■■■■■■■■■■■■■ 

valid_FileExtensions = [] 
valid_FileExtensions.append ("txt") 
valid_FileExtensions.append ("myCustomFileExtension") 

#■■■■■ Get Current File Extension ■■■■■■■■■■■■■■■■■■■■■■■■■ 

window  = view.window() 
fileExtension = window.extract_variables()[ "file_extension" ] 

#■■■■■ Verify Current File Extension ■■■■■■■■■■■■■■■■■■■■■■ 

file_IsValid = False 

for entry in valid_FileExtensions: 
    if fileExtension == entry: 
     file_IsValid = True 

#■■■■■ Exit Routine If File Extension Is Invalid ■■■■■■■■■■ 

if file_IsValid == False: 
    return 

वैकल्पिक रूप से; यदि आप वाक्यविन्यास का उपयोग करना पसंद करेंगे, तो आप इसका उपयोग कर सकते हैं:
fileSyntax = view.settings().get ("syntax")

वैकल्पिक रूप से; आप valid_FileExtensions पर YourPlugin.sublime-settings पर एक सरणी बना सकते हैं, ताकि उपयोगकर्ता यह निर्धारित कर सकें कि प्लगइन किस एक्सटेंशन के लिए काम करेगा।

0

यहाँ बाध्यकारी मैं प्लगइन Markdown Preview

{ 
    "keys": ["ctrl+b"], "command": "markdown_preview", "args": {"target": "browser"}, 
    "context": [{ "key": "selector", "operator": "equal", "operand": "text.html.markdown" }] 
}, 

के लिए उपयोग आप मैं कुंजी ctrl+b कि आम तौर पर build आदेश के लिए बाध्य है उपयोग कर रहा हूँ देख सकते हैं एक महत्वपूर्ण का एक नमूना है, लेकिन यह केवल सक्रिय जब है मेरा कर्सर "text.html.markdown" में है जो केवल मार्कडाउन फ़ाइलों में होता है। इसलिए ctrl+b आमतौर पर जब मैं किसी अन्य प्रकार की फ़ाइल में हूं तो निर्माण करता हूं।

यह दायरा आम तौर पर "text.html ..." या "source.python ..." रूप पर होता है। अपने कर्सर के दायरे का वर्तमान नाम ढूंढने के लिए, ctrl+alt+shift+p के साथ "show_scope_name" कमांड का उपयोग करें।

Relevant documentation

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