Code from Package Control may give some pointers, where it offers the ability to disable or enable certain Packages:
- Code: Select all
class DisablePackageCommand(sublime_plugin.WindowCommand):
def run(self):
manager = PackageManager()
packages = manager.list_all_packages()
self.settings = sublime.load_settings('Global.sublime-settings')
disabled_packages = self.settings.get('ignored_packages')
if not disabled_packages:
disabled_packages = []
self.package_list = list(set(packages) - set(disabled_packages))
self.package_list.sort()
if not self.package_list:
sublime.error_message(('%s: There are no enabled packages' +
'to disable.') % __name__)
return
self.window.show_quick_panel(self.package_list, self.on_done)
def on_done(self, picked):
if picked == -1:
return
package = self.package_list[picked]
ignored_packages = self.settings.get('ignored_packages')
if not ignored_packages:
ignored_packages = []
ignored_packages.append(package)
self.settings.set('ignored_packages', ignored_packages)
sublime.save_settings('Global.sublime-settings')
sublime.status_message(('Package %s successfully added to list of ' +
'disabled packages - restarting Sublime Text may be required') %
package)
You could perhaps cause your Packages to be enabled/disabled from a TextCommand. Alternatively, this could be checked using the on_load event; although, this would cause your code to run
every time you open a file.
[I apologise if I've misunderstood your question.]
PS I had an ulterior motive in posting my reply, as I wanted to see my name "in lights"

"I'm here to save your life. But if I'm going to do that, I'll need total uninanonynymity." Me Myself & Irene.