1

我想处理一个事件,当我更改我正在为Sublime Text 2编写的插件的color_scheme内部设置时触发的事件。Preferences.sublime-settings

读过使用on_window_commandEventListener但似乎它不会触发。

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

我也试过post_window_command没有成功。有什么方法可以检测偏好何时发生变化?

4

1 回答 1

1

您链接到的那些文档适用于 ST3。是 ST2 的文档。注意没有on_window_command。除此之外,您可能想看看Settings#add_on_change. 我以前从未在 API 中使用过该方法,但根据描述,它应该可以满足您的需求。

编辑

知道您已经有解决方案,但是为其他任何人添加此解决方案。on_load您可能会绑定到一个事件,例如on_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"))
于 2013-11-09T18:52:58.217 回答