2017-10-28 10 views
1

플러그인 코드를 실행할 때 사용 가능한 구문을 어떻게 검색 할 수 있습니까? 예를 들어SublimeText 3 - 설치된 구문 감지

나는 그때 try: ... except: 잡히면 할 수없는 숭고한에서 오류가 발생,

output_view.set_syntax_file("Packages/ANSIescape/ANSI.tmLanguage") 

호출하고 ANSIescape 패키지가 설치되지 않은 경우.

set_syntax_file을 (를) 오류없이 성실하게 수행하고 싶습니다.

답변

1

sublime.find_resources()을 사용하면 Sublime이 구문을 제공하는 모든 파일을 찾을 수 있습니다. 그 파일은 최신 구문을 사용하는 패키지의 경우 (이전 레거시 구문의 경우) 및 sublime-sytax 유형의 모든 파일입니다.

this plugin code에서이를 수행하는 예가 있습니다. 여기

def syntax_name(self, syntax): 
    syntax_file = os.path.basename(os.path.split(syntax)[1]) 
    return os.path.splitext(syntax_file)[0] 

def parse(self, langs, resource_spec): 
    for syntax in sublime.find_resources(resource_spec): 
     langs[self.syntax_name(syntax)] = syntax 

def query_syntax(self): 
    langs = {} 

    self.parse(langs, "*.tmLanguage") 
    self.parse(langs, "*.sublime-syntax") 

(파일 이름에서 파생로, 자세한 내용은 전체 코드 참조) 언어 이름입니다 키와 값으로 사전을 구축 코드

입니다되는 : 코드의 상대 조각이있다 파일의 전체 이름.