2013-11-09 26 views
1

我想處理一個事件,當我更改設置位於Preferences.sublime-settings中的插件時,我正在爲Sublime Text 2寫入一個插件。如何檢測崇高文本中的set_user_setting事件2

我已經read使用on_window_commandEventListener但它似乎不會觸發。

class MyPluginEvents(sublime_plugin.EventListener): 
    def on_window_command(self, window, command_name, args): 
     print " --- FIRE! --- " 

我也試過post_window_command沒有成功。有什麼方法可以檢測到喜好的變化?

回答

1

鏈接到的那些文檔是針對ST3的。 Here是ST2的文檔。請注意,不存在on_window_command。除此之外,你可能想看看Settings#add_on_change。我從來沒有在API中使用過這種方法,但是根據描述,它應該做你想做的事情。

編輯

知道你已經解決了,但添加此爲別人自帶本。 您可能會遇到事件,如on_loadon_new,因此該命令將在任何新創建的視圖上運行。

import sublime_plugin 

class TestCommand(sublime_plugin.TextCommand): 
    def run(self, edit): 
     settings = self.view.settings() 
     settings.add_on_change("color_scheme", self.callback) 

    def callback(self): 
     print(self.view.settings().get("color_scheme")) 
+0

謝謝,我來看看! – vitto

+0

我不知道如何在'add_on_change'中註冊回調,你能幫我一個例子嗎? – vitto

+0

我用'on_deactivated'做了它 – vitto