2013-11-09 35 views
1

我已经写了一个插件的情况下,菜单的情况发生了变化,确实存在某种方式来做到这一点?如何在Sublime Text上更改Context.sublime-menu项目的状态?

plugin_menu = sublime.load_settings('Context.sublime-menu') 
children = plugin_menu.get('children') 
children[0]["caption"] = "Message changed" 
plugin_menu.set('children', children) 
sublime.save_settings('Context.sublime-menu') 

我已经试过load_settings其正确地加载它,但它不保存它,主要是因为它是不这样做的正确方法和load_settings或许应该用于.sublime-settings文件。

回答

1

您将不得不为每个操作创建一个命令,但是您可能可以利用is_visible方法。这是它的用法的一个例子。

class AdvancedNewFileAtCommand(sublime_plugin.WindowCommand): 
    def run(self, dirs): 
     if len(dirs) != 1: 
      return 
     path = dirs[0] 
     self.window.run_command("advanced_new_file", {"initial_path": path + os.sep}) 


    def is_visible(self, dirs): 
     settings = sublime.load_settings("AdvancedNewFile.sublime-settings") 
     return settings.get("show_sidebar_menu", False) and len(dirs) == 1 

我检查设置和指定的目录数量。此特定示例用于选择性显示侧栏上下文菜单。

相关问题