Saturday, July 9, 2011

builtin command를 코드로 실행하기

Preferences > Detault Key Bindings 를 눌러 현재의 키 바인딩 정의를 열어 보았습니다.
분명히 이 내용은 eval처리되어 실행되는 python 코드의 텍스트임이 틀림없는 것 같습니다.

이 내용들을 한 번, 수동으로 실행해 보았습니다. (잘 작동되지 않습니다.)
Plugins api문서를 다시 읽어보면, new_window와 같은 builtin command들은 window객체의 메서드임이 기술되어 있습니다.
그렇다면 어떤 객체들의 instance들이 있는지 조사해 보았습니다.
python console을 열어 dir() 명령을 실행해 보았습니다.



python의 dir() 함수는 글로벌하게 등록된 클래스의 instance들의 리스트를 나타냅니다.
['LogWriter', '__builtins__', '__doc__', '__name__', '__package__', 'os', 'sublime', 'sublimelog', 'sys', 'uzipimporter', 'view', 'window', 'zipimport']
이 중, '__builtins__', '__doc__', '__name__', '__package__'은 python의 builtin이고 그 외의 것중 'sublime', 'view', 'window'가 주된 sublime api입니다.

window.run_command('new_window')

잘 실행됩니다.
# 혹시나 해서 view.run_command('new_window')를 해보았습니다만, 역시 안됩니다.

이 내용으로 builtin command들이 무엇이 있는 지, 어떻게 코드로 호출할 수 있는 지 알 것 같습니다.

No comments:

Post a Comment