2013-11-09 27 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